PHP扩展在phpinfo中无法加载

7
所以我在Mountain Lion上运行MAMP,并使用pecl安装了gmagick和imagick,两者都是测试版(主要是因为gmagick没有稳定版本,而imagick 3.0.0无法安装,它会给出一个make错误)。当我在终端中运行php -i时,这些模块出现了,但在phpinfo()中未显示,我已经检查了php.ini,两者相同,所以不是问题。但是,我已经安装了bitset(这是一个稳定版本),它出现在phpinfo()和php -i中。所以我的问题是,PHP是否有任何配置选项,如果它们不稳定就不加载扩展程序?顺便说一下,在更改ini文件后,我确实重新启动了服务器。

1
你是否检查了Apache目录中的php.ini文件? - Wayne Whitty
4个回答

6
您的机器上可能会有两个 PHP 版本。Mountain Lion 带有预安装的 PHP 版本。在终端中尝试使用locate php.ini 查找已安装的 php.ini 的数量。
在您的 phpinfo() 页面中,还注明了正在使用哪个 php.ini。您可能想要打开用于您的 phpinfo() 的确切 php.ini,并确保加载了扩展。应该有两行类似于: extension=/path/to/gemagicext/gmagic.so extension=/path/to/imagick/imagick.so

是的,当我运行phpinfo()时,它会显示我正在使用哪个php.ini(正确的)文件,并且与我在控制台中运行php -i时获得的php.ini文件相同,因此这不是问题所在。 - Vidi

6
我曾经遇到一个与php-fpm和nginx服务器相关的类似问题。问题是由于更新后的php配置未反映在当前活动的php-fpm工作进程中导致的。我不得不手动终止fpm进程并重新启动它,以获取更新的扩展信息。
以下是适用于我的步骤:
1)查找活动的php-fpm进程
 ps ax | grep "fpm"

通常情况下会列出多个进程:

2) 手动终止进程

kill -9 [pid_got_from_previous_command]

3) 重新启动php-fpm进程

sudo service php5-fpm start

提示:尝试使用sudo service php-fpm reloadsudo service php-fpm restart等命令无效,因为旧的子进程仍然保留着旧配置。杀死活动进程并重新启动php fpm可以更新我的phpinfo信息。


2
你是对的。另一种解决方案是重新启动服务器,但你的解决方案更好。(无停机时间) - Terry Lin

2
我遇到了同样的问题,使用CentOS 6.6 x64和php 5.5.27。我按照http://php.net/manual/en/imagick.installation.php中的步骤进行操作。
首先从这里下载ImageMagick安装的tar镜像文件: sourceforge.net/projects/imagemagick/files/
解压它,然后在终端中输入以下命令:
1.  "cd ImageMagick-6.9.1-10" - go where you placed the folder
2.  ./configure
3.  make
4.  make install
5. make check
6. install imagick extension from pecl.php.net/package/imagick/download 3.1.2
7. cd imagick-3.1.2
8. phpize
9. ./configure --with-imagick=/opt/local
10. make
11. make install
12. Copy imagick.so in your PHP extensions folder and add extension=imagick.so in php.ini

重新启动Apache:service httpd restart


0

我相信这个问题与您的扩展和PHP服务器兼容性有关。当我创建自己的扩展时,也遇到了这样的问题。您的扩展应该在三个主要属性上与您的PHP服务器兼容:

1- 您的PHP服务器配置的Zend API编号(在phpinfo()中可以找到此编号),此编号应与构建时的扩展头文件相同。

2- PHP服务器上的编译器版本和您的扩展必须相同。

3- PHP服务器中的线程安全性很重要。如果您使用线程安全服务器,则必须使用php线程安全库构建扩展;如果您使用非线程安全服务器,则应使用PHP-nts库构建扩展。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接