编译PHP Imagick扩展XAMPP 1.7.3在OS X狮子


Compiling PHP Imagick Extension for XAMPP 1.7.3 on OS X Lion

我在OS X Lion上使用XAMPP 1.7.3编译和运行PHP Imagick扩展时有一些麻烦。

当启动Apache时,我在PHP错误日志中得到以下错误(并且扩展没有显示在phpinfo()输出中):

[16-Aug-2011 12:42:31] PHP Warning:  PHP Startup: Unable to load dynamic library '/Applications/XAMPP/xamppfiles/lib/php/php-5.3.1/extensions/no-debug-non-zts-20090626/imagick.so' - dlopen(/Applications/XAMPP/xamppfiles/lib/php/php-5.3.1/extensions/no-debug-non-zts-20090626/imagick.so, 9): no suitable image found.  Did find:
    /Applications/XAMPP/xamppfiles/lib/php/php-5.3.1/extensions/no-debug-non-zts-20090626/imagick.so: mach-o, but wrong architecture in Unknown on line 0

我安装了XAMPP开发包。

我使用Homebrew安装Imagick 6.7.1-1:

brew install imagemagick
brew link imagemagick

为了安装Imagick扩展,我使用了XAMPP提供的PECL:

cd /Applications/XAMPP/xamppfiles/bin
sudo ./pecl install imagick

当提示输入ImageMagick的位置时,我尝试了以下路径(结果相同):

/usr/local/bin
/usr/local/Cellar

您可以在这里看到完整的输出:https://gist.github.com/1149849

此外,我尝试从PECL网站抓取Imagick PECL(3.0.1和3.1.0b) tar并从头开始编译:

/Application/XAMPP/xamppfiles/bin.phpize
./configure --with-imagick=/usr/local/bin --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config-5.3.1 
make
sudo make install
make test

您可以看到以下输出:https://gist.github.com/1149875

我在不同的网站上偶然发现了一些关于这个话题的文章,但没有一篇能帮助我解决这个问题。

我也尝试过MacPorts for ImageMagic,结果相同(在编译期间使用/opt/local作为路径)。

如有任何建议,不胜感激。

注意:为了记录,我能够在另一台OS X Lion机器上重现此问题。

PHP Warning: PHP Startup: Unable to load dynamic library '../imagick.so' {Snip}....no suitable image found. Did find: imagick.so: mach-o, but wrong architecture in Unknown on line 0

它清楚地表明,扩展在那里,但架构与内核不同。也许你被引导到64位内核&试图运行32版本,反之亦然。

用正确的arch引导进入内核

[1] Mac OS X v10.6:启动32位或64位内核