所以我在Mountain Lion上运行MAMP并且我使用pecl安装了gmagick和imagick,两者都是相关候选者(主要是因为gmagick没有稳定版本而且想象力3.0.0没有安装,它给出了制造错误)。当我在终端中运行php -i但不在phpinfo()中时出现模块,我检查了php.ini两者都是一样的,所以这不是问题。但是我已经安装了bitset(这是一个稳定的版本) )它出现在phpinfo()和php -i中。所以我的问题是PHP有没有任何配置选项,如果它们不稳定,它们不会加载扩展?顺便说一下,在更改了ini文件之后,我确实重启了我的服务器。
答案 0 :(得分:6)
您现在可能在您的计算机上安装了两个php。 Mountain Lion附带预装的php版本。在终端中尝试locate php.ini
以了解安装了多少php.inis。
在你的phpinfo()页面中还注意到哪个php.ini正在使用中。您可能想要打开用于phpinfo()的确切php.ini并确保加载扩展。
应该有两行像
extension=/path/to/gemagicext/gmagic.so
extension=/path/to/imagick/imagick.so
答案 1 :(得分:5)
我遇到了与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 reload
或sudo service php-fpm restart
之类的内容无效,因为旧的子进程保留了旧配置。杀死活动进程并重新启动php fpm为我更新了phpinfo。
答案 2 :(得分: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
答案 3 :(得分:0)
我确定此问题与您的扩展和PHP服务器兼容性有关。我创建自己的扩展时遇到了这样的问题。您的扩展应该与您的PHP服务器兼容,有三个主要属性:
1-您的PHP服务器配置的Zend API编号(在phpinfo()中您可以找到此编号),此编号应与构建时的扩展头文件相同。
2- PHP服务器上的编译器版本和扩展名必须相同。
3- PHP服务器中的线程安全很重要。如果使用线程安全服务器,则必须使用php线程安全库构建扩展,如果使用非线程安全服务器,则应使用PHP-nts库构建扩展。