ImageMagick 在命令行中工作,但是当 php 中的 exec() 时,它返回 5 并显示“不兼容的库版本”。
我在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
编辑这个文件:
注释掉以下行:
Edit this file:
Comment out the following lines: