PHP不加载php.ini中指定的扩展名,但加载dl()

时间:2011-03-20 12:49:35

标签: php

Php不加载通过php.ini

指定的扩展名

php -v不会出现任何错误或警告

php -i | grep extension_dir显示extension_dir设置为扩展文件所在的位置,但它们未显示在php -m

的扩展名列表中

但是,运行php -r 'dl("apc.so"); phpinfo();' | grep apc会显示模块正常加载dl()函数。

我从源代码安装了php-5.3.5。 配置

'--enable-fastcgi'
'--enable-fpm'
'--enable-mbstring'
'--enable-pdo'
'--enable-inline-optimization'
'--enable-sockets'
'--enable-zip'
'--enable-mbregex'
'--enable-xml'
'--enable-sysvsem'
'--enable-sysvshm'
'--enable-pcntl'
'--enable-ftp'
'--enable-soap'
'--enable-shmop'
'--disable-rpath'
'--disable-debug'
'--with-mcrypt'
'--with-zlib'
'--with-curl'
'--with-bz2'
'--with-mysql'
'--with-gettext'
'--with-gd'
'--with-pdo-mysql'
'--with-pcre-regex'
'--with-mhash'
'--with-pic'
'--with-zlib-dir'
'--with-ttf'
'--with-openssl'
'--with-png-dir'
'--with-libdir=lib64'
'--without-pdo-sqlite'
'--without-sqlite'

uname -a打印:

Linux ip-*-*-*-* 2.6.34.7-56.40.amzn1.x86_64 #1 SMP Fri Oct 22 18:48:49 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux

Php通过php-fpm

在nginx 0.9.5上运行

3 个答案:

答案 0 :(得分:6)

对于要加载的扩展,您必须有一行,例如以下一行:

extension=apc.so

在PHP使用的php.ini (或任何其他.ini文件)文件中。


如果您在使用dl()时正确加载扩展程序,则表示您的扩展程序正常(没有错误版本或类似内容)

下一步,即:

  • 确保您已将extension=...行添加到php.ini文件
  • 确保您修改了正确的php.ini文件

您可以查看使用了哪个php.ini文件:它显示在phpinfo()的输出中。


注意:对于某些Linux发行版,CLI中使用的php.ini文件与Apache 使用的文件不同(不确定用于nginx的文件)

答案 1 :(得分:0)

通过静态链接我在php可执行文件中所需的扩展来修复此问题,现在一切正常。服务器不会加载xdebug扩展名。

答案 2 :(得分:0)

从phpmyadmin转到 Php.ini 文件,在文本编辑器中打开并搜索; extension = php_soap.dll ,然后删除; 符号之后重新启动您的Wamp / xamp服务,然后刷新您的网址页面..很高兴