ImageMagick 在命令行中工作,但是当 php 中的 exec() 时,它返回 5 并显示“不兼容的库版本”。

发布于 2024-12-10 18:25:58 字数 883 浏览 0 评论 0原文

我在 OS X 上使用 MAMP(以及 Macports)的 php 5.3.6 和 ImageMagick(命令行)遇到了一个奇怪的问题。

当我从 CLI 运行识别命令时,它工作正常。但是,当我使用 exec() 运行完全相同的命令时,它返回值代码 5,并且在 apache 错误日志中我有:

dyld:未加载库:/opt/local/lib/libfreetype.6.dylib
引用自:/opt/local/bin/identify 原因:不兼容 库版本:identify需要14.0.0或更高版本,但是 libfreetype.6.dylib提供版本13.0.0

13.0.0 cli 命令是: /opt/local/bin/identify /Users/leonardteo/Documents/1.jpg

从命令行执行时效果很好。从 PHP 执行时:

exec("/opt/local/bin/identify /Users/leonardteo/Documents/1.jpg", $output, $return);

$return is 5

$output is Nothing

检查 apache 日志会发现 libfreetype 存在上述问题。

我使用 Macports 安装了 ImageMagick。我还尝试了从源代码手动构建并从 /usr/local/bin/identify 运行识别,并得到了相同的结果。我还尝试从 Macports 而不是 MAMP 运行 PHP,并且得到相同的结果。

有人可以帮忙解释一下吗?

I'm having a bizarre problem with php 5.3.6 and ImageMagick (command line) using MAMP (and Macports too..I tried both) on OS X.

When I run the identify command from the CLI, it works fine. But when I run the exact same command using exec(), it returns a value code of 5 and in the apache error logs I have:

dyld: Library not loaded: /opt/local/lib/libfreetype.6.dylib
Referenced from: /opt/local/bin/identify Reason: Incompatible
library version: identify requires version 14.0.0 or later, but
libfreetype.6.dylib provides version 13.0.0

E.g.
The cli command is:
/opt/local/bin/identify /Users/leonardteo/Documents/1.jpg

This works just fine when executed from the command line. When executed from PHP:

exec("/opt/local/bin/identify /Users/leonardteo/Documents/1.jpg", $output, $return);

$return is 5

$output is nothing

Checking the apache logs gives the above issue with libfreetype.

I installed ImageMagick using Macports. I've also tried a manual build from source and running identify from /usr/local/bin/identify and I get the same result. I have also tried running PHP from Macports instead of MAMP and I get the same result.

Could someone please help shed light on this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

久随 2024-12-17 18:25:58

编辑这个文件:

/Applications/MAMP/Library/bin/envvars

注释掉以下行:

DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"

导出 DYLD_LIBRARY_PATH

Edit this file:

/Applications/MAMP/Library/bin/envvars

Comment out the following lines:

DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"

export DYLD_LIBRARY_PATH

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文