我在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机器上重现此问题。
答案 0 :(得分:0)
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位内核&尝试运行32version,反之亦然。
使用正确的拱门
启动内核[1] Mac OS X v10.6: Starting up with the 32-bit or 64-bit kernel