奇怪的问题——PHP/ImageMagick/Ghostscript

奇怪的问题——PHP/ImageMagick/Ghostscript,php,imagemagick,mamp,ghostscript,Php,Imagemagick,Mamp,Ghostscript,这很接近,但不起作用。我正在尝试将pdf转换为jpg(用于缩略图)。以下是我正在运行的命令: convert -quality 100 -density 200x200 /path/file.pdf /path/file.jpg 我有mamp pro 1.7.2、imagemagick和ghostscript,所有这些都已正确安装和运行。这个命令在shell中工作得很好,但在php脚本中运行时失败。另一个转折点是,对于图像到图像的转换,shell和脚本都可以完美地工作。这会让我相信,在apac

这很接近,但不起作用。我正在尝试将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/get-imagemagick-and-more-to-work-with-mamp-on-os-x/),因此imagemagick工作得很好,“/opt/local/bin”在我的apache路径变量中

通过一个shell,从pdf到图像的转换需要一些时间,我一直认为php脚本在imagemagick/ghostscript转换完成之前正在终止/完成,可能会中止imagemagick转换过程。。。?我试过exec、system、shell_exec都没用

我没有从命令中得到任何输出—apache或php日志中似乎没有发生任何事情,也没有显示任何内容

更新:重新启动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.
有人有什么想法吗?我在这件事上很紧张


非常感谢

Apache通常对您的服务器拥有有限的权限(这就是您想要的),请尝试将文件放入/tmp中,您知道Apache具有写入权限。Apache在读取其他用户创建的文件时可能会遇到问题,除非这些文件是全世界可读的。

我读了一些文章,认为使用exec使用shell命令不是最好的,这是在php中使用内置Imagick的更好方法。要了解更多信息,请向

谢谢
有梦想的一天

谢谢你的想法,我也在想同样的事情。文件正在被读取,这一事实证明,映像到映像的转换正在工作,而不是任何涉及PDF的转换(与ghostscript相关)。可以确认这是关于权限的,添加了env var TMPDIR以指向新目录,并添加了具有完全权限的本地帐户IUSR。现在一切都很顺利。