PHP imagick安装错误

3

我已经安装了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

谷歌没有提供帮助


你能告诉我你是否使用64位的Windows系统吗?我认为这可能是imagick-3.X.X和Windows 7 64位中的imagick PHP DLL不兼容的问题。尝试使用imagick-2.3.X版本,这对我解决了问题。 - StigM
这是一个MacOS问题,使用Homebrew安装。 - Christoffer Bubach
2个回答

3

看起来你必须手动编译它,步骤如下:

$ 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 for brew并删除XAMMP,我使用它,效果完美: https://github.com/josegonzalez/homebrew-php 此选项卡具有最稳定的PHP包和最新的包。
问候。

即使我最终使用了捆绑Imagick的Bitnami,也获得了悬赏奖励。 ;) - Christoffer Bubach
这也适用于安装了ARM-Homebrew和php@7.4的M1 Mac上 - 只需省略架构标志(当然使用最新版本 - 3.4.4)。 - Dominik

0

我在使用AMPPS时遇到了同样的问题。我使用Homebrew安装了ImageMagick和imagick,试图在AMPPS上使其正常工作。当我最终编译成功时 - 我记得需要从AMPPS文件夹中创建正确二进制文件的符号链接 - 我遇到了这个错误。

结果发现,并没有所有库都被正确链接。我想是因为我使用了“nm”命令来检查另一台计算机上可用的working imagick.so文件与无法加载的文件之间的差异。无论如何,我已经厌倦了编译问题和不兼容性,现在将重新安装所有内容以解决它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接