PHP imagick安装错误

时间:2012-11-15 22:07:37

标签: php macos imagick

我安装了imagick php模块,并使用Brew安装了Image Magick。一旦安装并添加到php.ini中的扩展中,我就会在Apache(XAMPP)启动时出现此错误。

dyld: lazy symbol binding failed: Symbol not found: _MagickWandGenesis
Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20090626/imagick.so
Expected in: flat namespace

谷歌一直没有帮助

2 个答案:

答案 0 :(得分:2)

看起来您必须手动编译,如下所示:

$ cd /usr/local/src/
$ wget http://pecl.php.net/get/imagick-3.0.1.tgz
$ tar -xzvf imagick-3.0.1.tgz 
$ cd imagick-3.0.1
$ phpize
$ MACOSX_DEPLOYMENT_TARGET=10.6
$ CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp"
$ CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
$ CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
$ LDFLAGS="-arch i386 -arch x86_64 -bind_at_load"
$ export CFLAGS CXXFLAGS LDFLAGS CCFLAGS MACOSX_DEPLOYMENT_TARGET
$ echo $CFLAGS
$ ./configure --with-imagick=/usr/local//Cellar/imagemagick/6.8.0-10
$ make
$ sudo make install
$ sudo vim /etc/php.ini
$ sudo apachectl restart

这是这篇文章的摘录: http://charles.lescampeurs.org/2013/06/18/add-c-header-include-path-pecl

但也许更简单的解决方案是使用josegonzalez的PHP tap进行brew并删除XAMMP,我使用它并且工作完美: https://github.com/josegonzalez/homebrew-php

此选项卡具有最稳定的包和最近的PHP

此致

答案 1 :(得分:0)

我遇到了与AMPPS相同的问题。我安装了ImageMagick并用自制软件设想想要尝试让它在AMPPS之上工作。当我最终编译时 - 我记得从参与的AMPPS文件夹中找到正确二进制文件的符号链接 - 我收到了这个错误。

并非所有正确链接的库都没有。我认为这是'nm'命令我用来检查另一台计算机上的工作imagick.so文件与不加载的文件之间的区别。无论如何,我现在已经完成了编译问题和不兼容的问题,并将从头开始重新安装所有内容以解决它。