当前位置: 首页 > 知识库问答 >
问题:

PHP扩展在apache模块中加载,但不在CLI中加载

仲孙诚
2023-03-14

我刚刚通过Brew在Mac OSX 10.10.1上执行了PHP 5.5(.19)的新安装,并将Brew安装中的libphp5.so符号链接到/usr/libexec/apache2/libphp5.so

使用phpinfo()通过Apache启动脚本,告诉我加载的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

我应该提到这些模块也安装在Brew中。当使用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

所以我知道它使用的是正确的安装(Yosemite默认的PHP版本是5.5.14)。

我似乎找不到为什么在使用Apache时扩展加载没有问题,而在使用CLI时没有问题。我如何摆脱这个警告?

共有1个答案

向锦
2023-03-14

我对mcrypt扩展也有类似的问题。

通过删除extension=mcrypt解决了这个问题。所以从mainphp。ini因为扩展名包含在附加文件中,来自conf.dpath。我认为你可以用同样的方式解决你的问题。只需删除php中包含的所有行。ini

祝你好运!

 类似资料:
  • 我有一个问题加载我的扩展在PHP在windows 7.我已经在我的windows上安装了php和IIS,当我检查phpinfo()页面时,我发现我的extension_dir是c:/php/exts。所以我将我的dll文件复制到那个目录中,并添加php.ini文件,然后我重启IIS并检查我的扩展名是否已加载: 但每次我运行这段代码时都会得到“否”。谢谢你的帮助。

  • 我在phpinfo()中的“已解析的其他.ini文件”部分看不到mcryptphp_mcrypt'已经安装。我使用CentOs和nginx以及PHP5.3。3. 在/etc/php中。d/mcrypt。我写的ini扩展名=mcrypt。所以 我试图改变扩展路径在php.ini(ex扩展=/usr/lib64/php/模块/mcrypt.so),但它仍然不工作。

  • 我安装php7.1使用和未链接的http pd24。我得到了工作版本的php7.1一起libphp7.so. php7.1运行 但是当我添加将其转换为httpd。conf文件,php文件停止工作。当我取消注释返回一切正常。有什么想法吗? PS.OS版本:10.12。2.

  • 我正在windows server 2008 R2机器上工作。我已经用PHP5.4安装了Apache2.2。25在尝试为apache服务器启用ldap支持时,我发现服务器没有加载扩展。 我跑了php_info(),结果是这样的 配置文件(php.ini)路径 C:\Windows加载的配置文件:“C:\php\php.ini 扩展目录C:\php\ext 我已经改变了php。ini加载扩展,但它们

  • 扩展说明 扩展点本身的加载容器,可从不同容器加载扩展点。 扩展接口 org.apache.dubbo.common.extension.ExtensionFactory 扩展配置 <dubbo:application compiler="jdk" /> 已知扩展 org.apache.dubbo.common.extension.factory.SpiExtensionFactory org.a

  • 问题内容: 昨天我帖子的后续内容(使用PHP启用cURL) 问题是PHP无法加载php_curl.dll。我尝试了几个步骤,包括取消注释,确保路径中的依赖关系和eixst,重新下载php_curl.dll,替换旧的文件以及最后将文件复制到我的System32文件夹中。 我正在使用Apache 2.2和PHP 5.4.14。我使用它们各自的软件包进行安装;我没有使用XAMP或WAMP。我正在使用Wi