7

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

4

4 回答 4

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

于 2013-03-07T13:31:32.707 回答
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。

于 2014-02-11T05:09:01.263 回答
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

于 2015-08-14T14:27:00.270 回答
0

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

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

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

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

于 2013-04-07T07:40:00.000 回答