我尝试使用MAMP 3.0.5将PDF转换为png文件。我知道我的PHP代码工作正常,因为它在我们的Linux服务器上工作正常......
我在Mac OSX 10.8.5上设置了MAMP 3.0.5,当我运行脚本将PDF转换为png文件时,我收到以下错误:
致命错误:未捕获的异常'ImagickException',消息'Postscript委托失败'/Applications/MAMP/htdocs/timesheets.com/saas/public_html/timesheets1/timesheets/Daisy_Morris_53635951154c7.pdf':没有这样的文件或目录@ error / pdf.c / ReadPDFImage / 713' <
请帮助,这让我发疯了!
答案 0 :(得分:2)
我刚发现这篇博文:http://lamp-ios.com/?p=216
问题在于MAMP pro的PATH变量不包括ghost脚本的路径,ImageMagick在PDF操作中使用了该脚本。
修复它的步骤是:
其中/ opt / local / bin /是gs install的路径
答案 1 :(得分:1)
这可能会有所帮助。我刚刚遇到同样的问题并在几个小时后解决了。
我的第一直觉是确保PHP正在寻找正确的PATH。对我来说,就是这样:
putenv('PATH=' . getenv('PATH') . ':/usr/local/bin');
这本身似乎没什么帮助,但我把代码留在那里,因为在某些时候GhostScript需要知道在哪里找到这些libpng文件。
我的下一步是检查MAMP的Apache错误日志。我发现这可能是罪魁祸首:
dyld: Library not loaded: /usr/local/lib/libpng16.16.dylib
Referenced from: /usr/local/bin/gs
Reason: Incompatible library version: gs requires version 29.0.0 or later, but libpng16.16.dylib provides version 23.0.0
很奇怪,因为我的/ usr / local / lib中的libpng是最新的(1.6.12)。
经过多次试验和错误,我发现从3.0.5开始,MAMP在/ Applications / MAMP / Library / lib
中覆盖了自己的libpng文件我从/ Applications / MAMP / Library / lib中删除了libpng16.16.dylib,重新启动了MAMP,再次尝试,并收到此错误:
dyld: Library not loaded: /usr/local/lib/libfreetype.6.dylib
Referenced from: /usr/local/bin/gs
Reason: Incompatible library version: gs requires version 18.0.0 or later, but libfreetype.6.dylib provides version 17.0.0
嗯,这是不同的,所以我也从/ Applications / MAMP / Library / lib中删除了libfreetype.6.dylib,并重新启动了MAMP。
此时,一切都开始起作用了。至少对我来说,两个步骤是确保PHP的PATH正在查看正确的目录,然后从MAMP包含的libpng库中删除有问题的文件,迫使PHP使用/ usr /中的最新libpng文件本地/ lib中。