【问题标题】:PHP imagick install errorPHP imagick安装错误
【发布时间】:2012-11-15 22:07:37
【问题描述】:

我已经安装了 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。这为我解决了问题。
  • 这是 MacOS 问题,使用自制软件安装。

标签: php macos imagick


【解决方案1】:

看来你必须手动编译如下:

$ 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 软件包

问候

【讨论】:

  • 获得了赏金,即使我最终还是使用了带有捆绑 imagick 的 bitnami。 ;)
  • 这也适用于安装了 ARM-Homebrew 和 php@7.4 的 M1 Mac - 只是省略了架构标志(当然使用了最新版本 - 3.4.4)。
【解决方案2】:

我在使用 AMPPS 时遇到了同样的问题。我用自制软件安装了 ImageMagick 和 imagick,试图让它在 AMPPS 上运行。当我最终编译它时 - 我记得从涉及的 AMPPS 文件夹中指向正确二进制文件的符号链接 - 我收到了这个错误。

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

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 2014-02-06
    • 2016-04-14
    • 1970-01-01
    • 2012-01-29
    • 2018-11-14
    • 2015-10-25
    • 2012-05-16
    • 1970-01-01
    相关资源
    最近更新 更多