这个question很接近,但没有办法解决问题。我正在尝试将pdf转换为jpg(用于缩略图)。这是我正在运行的命令:
convert -quality 100 -density 200x200 /path/file.pdf /path/file.jpg
我有mamp pro 1.7.2,imagemagick,ghostscript所有正确安装和工作。此命令可以从shell中完美运行,但在从php脚本中运行时会失败。另一个转折,是图像到图像的转换,从shell和脚本完美地工作。这会让我相信在apache / php环境中有一些与ghostscript(gs)相关的路径问题,尽管gs二进制文件与convert二进制文件位于同一目录中。此外,我已经调整了mamp apache envars per( brybot.ca的优秀教程 - www.brybot.ca/archives/getting-imagemagick-and-more-to-work-with-mamp-on-os-x / )所以ImageMagick工作得很好而且“/ opt / local / bin”在我的apache路径变量中。
通过一个shell,从pdf到image的转换需要一些时间,我有一个唠叨的想法,php脚本在imagemagick / ghostscript转换完成之前终止/完成,并可能中止imagemagick转换过程......?我试过exec,system,shell_exec都无济于事。
我没有得到命令的输出似乎没有发生任何事情,也没有出现在apache或php日志中。
UPDATE :现在我在重新启动MAMP后在apache日志中收到以下错误
convert: unable to create temporary file `/path/file.pdf': Permission denied @ pdf.c/ReadPDFImage/358. convert: missing an image filename `/path/file.jpg' @ convert.c/ConvertImageCommand/2766.
有人有什么想法吗?我正在把头发拉出来......
非常感谢!
答案 0 :(得分:2)
Apache通常对您的服务器具有有限的权限(这就是您希望它的方式),尝试将文件放入/ tmp,您知道apache具有写入权限。 Apache可能也无法读取由其他用户创建的文件,除非它们是世界可读的。
答案 1 :(得分:0)
我读了一些文章,不是最好使用exec使用shell命令,更好的方法在php中使用内置的Imagick。更多信息,请您阅读Link
由于 有梦想日