2014-11-25 72 views
2

我剛剛在Mac OSX 10.10.1上通過Brew和symlinked libphp5.so從Brew安裝到/usr/libexec/apache2/libphp5.so執行了全新安裝的php 5.5(.19)。PHP擴展在apache模塊中加載,但不在CLI中

通過Apache啓動腳本phpinfo()告訴我加載的php.ini文件位於/usr/local/etc/php/5.5/php.ini

我已將此添加到php.ini的底部:

extension=memcache.so 
extension=memcached.so 
extension=imagick.so 
extension=mongo.so 
extension=mcrypt.so 

我應該指出,這些模塊與釀造安裝也。使用PHP作爲Apache模塊時,它們的加載沒有問題。然而,使用從終端PHP的時候,我收到以下輸出:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/memcache.so' - dlopen(/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/memcache.so, 9): image not found in Unknown on line 0 

Warning: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/memcache.so' - dlopen(/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/memcache.so, 9): image not found in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/memcached.so' - dlopen(/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/memcached.so, 9): image not found in Unknown on line 0 

Warning: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/memcached.so' - dlopen(/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/memcached.so, 9): image not found in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/imagick.so' - dlopen(/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/imagick.so, 9): image not found in Unknown on line 0 

Warning: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/imagick.so' - dlopen(/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/imagick.so, 9): image not found in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/mongo.so' - dlopen(/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/mongo.so, 9): image not found in Unknown on line 0 

Warning: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/mongo.so' - dlopen(/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/mongo.so, 9): image not found in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/mcrypt.so' - dlopen(/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/mcrypt.so, 9): image not found in Unknown on line 0 

Warning: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/mcrypt.so' - dlopen(/usr/local/Cellar/php55/5.5.19/lib/php/extensions/no-debug-non-zts-20121212/mcrypt.so, 9): image not found in Unknown on line 0 

在運行時:

php --ini

我收到的輸出:

Configuration File (php.ini) Path: /usr/local/etc/php/5.5 
Loaded Configuration File:   /usr/local/etc/php/5.5/php.ini 
Scan for additional .ini files in: /usr/local/etc/php/5.5/conf.d 
Additional .ini files parsed:  /usr/local/etc/php/5.5/conf.d/ext-memcache.ini, 
/usr/local/etc/php/5.5/conf.d/ext-memcached.ini, 
/usr/local/etc/php/5.5/conf.d/ext-xdebug.ini 

所以我可以看到,加載的配置文件與作爲Apache模塊運行時使用的配置文件相同。

運行:

php -v

給我:

PHP 5.5.19 (cli) (built: Nov 25 2014 11:47:10) 
Copyright (c) 1997-2014 The PHP Group 
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies 
    with Xdebug v2.2.6, Copyright (c) 2002-2014, by Derick Rethans 

所以我知道它使用了正確的安裝(約塞米蒂默認的PHP版本是5.5.14)。

我似乎無法找到爲什麼擴展加載沒有問題時使用Apache,但沒有使用CLI時。我如何擺脫這個警告?

回答

2

我與mcrypt擴展有類似的問題。

通過從php.ini中刪除extension=mcrypt.so來解決它,因爲擴展名被包含在附加文件中,從conf.d路徑。我認爲你可以用相同的模式解決你的問題。只需刪除您包含在您的php.ini中的所有行。

祝你好運!