我有一个奇怪的问题,php 5.3.6和imagemagick(命令行)在os x上使用mamp(和macports也是..我都试过了)。
当我从cli运行identify命令时,它工作正常。但是,当我使用exec()运行完全相同的命令时,它会返回5的值代码,在apache错误日志中,我有:
dyld:未加载库:/opt/local/lib/libfreetype.6.dylib
引用自:/opt/local/bin/identify reason:不兼容
库版本:标识需要版本14.0.0或更高版本,但是
libfreetype.6.dylib提供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);
$return5
$output什么都不是
检查apache日志会导致libfreetype出现上述问题。
我用macports安装了imagemagick。我还尝试了从源代码手动构建并从/usr/local/bin/identify运行identify,得到了相同的结果。我也试过从macports而不是mamp运行php,得到了相同的结果。
有人能帮忙解释一下吗?

最佳答案

编辑此文件:
/应用程序/mamp/library/bin/envvars
注释以下行:
dyld_library_path=“/applications/mamp/library/lib:$dyld_library_path”
导出动态库路径

07-24 15:38