1

我正在尝试在 osx lion 上安装 imagick 和 mongo。请注意,我的 php 安装是通过自制软件完成的。我已经正确安装了软件包,它应该可以工作,但是 php 返回以下内容

警告:PHP 启动:imagick:无法初始化模块 使用模块 API=20090626 编译的模块 使用模块 API=20100525 编译的 PHP 这些选项需要在第 0 行的未知中匹配

PHP 警告:PHP 启动:mongo:无法初始化模块 使用模块 API=20090626 编译的模块 使用模块 API=20100525 编译的 PHP 这些选项需要在第 0 行的未知中匹配

关于如何解决这个问题的任何线索?

4

2 回答 2

2

PHP 错误表明您已经从您尝试使用扩展的服务器(20100525 API 是 PHP 5.4)编译了不同 API 版本的扩展( 20090626 API 是 PHP 5.3)。

我怀疑您已经通过自制软件安装了 PHP 5.4,但在编译扩展时设法获取了 OS X 默认标头(PHP 5.3)。您需要使用 PHP 5.4 重新编译您的扩展,或者将您的 Web 服务器降级到 PHP 5.3。

您可以使用以下命令检查路径中 PHP 标头的版本php-config

php-config --version

以及 PHP 和扩展 API 的版本:

php -i | egrep "PHP (Extension|Version)"

可能的修复:

  1. 首先包含/usr/local/bin在您的路径中,以便优先于系统默认值找到自制 PHP 版本:

    export PATH=/usr/local/bin:$PATH
    
  2. 通过 Homebrew 安装 PHP 5.3:

    brew uninstall php54
    
    brew install php53
    
于 2012-09-03T21:31:43.537 回答
0

作为参考,我想补充一点,当 brew 安装 php 时,它将附加的 ini 文件读取文件夹设置为 /usr/local/etc/php/5.4/php5/conf.d

虽然它实际上是 /usr/local/etc/php/5.4/conf.d

您可以通过符号链接轻松解决该问题

cd /usr/local/etc/php/5.4/
mkdir php5
cd php5
ln -s ../conf.d .
于 2012-09-04T10:53:20.840 回答