php-ImagickException与消息后记委托在MAMP 3.0.5上失败
作者:互联网
我正在尝试使用MAMP 3.0.5将PDF转换为png文件.我知道我的PHP代码可以正常运行,因为它可以在我们的Linux服务器上正常工作…
我在Mac OSX 10.8.5上安装了MAMP 3.0.5,当我运行脚本将PDF转换为png文件时,出现以下错误:
Fatal error: Uncaught exception ‘ImagickException’ with message ‘Postscript delegate failed `/Applications/MAMP/htdocs/timesheets.com/saas/public_html/timesheets1/timesheets/Daisy_Morris_53635951154c7.pdf’: No such file or directory @ error/pdf.c/ReadPDFImage/713′<
请帮助,这使我发疯!
解决方法:
这可能会有所帮助.我只是遇到了同样的问题,几个小时后就解决了.
我的第一个直觉是确保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被其自己的libpng文件覆盖,位于/ Applications / MAMP / Library / lib中
我从/ 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.
标签:imagick,pdf,imagemagick,php,macos 来源: https://codeday.me/bug/20191121/2054424.html