我试图让我的web应用程序创建PDF文件上传缩略图使用下面的命令来创建:PDF缩略图不能通过EXEC
exec("/usr/local/bin/convert '/path/to/file.pdf'[0] -background white -alpha remove -thumbnail 600x '/path/to/file.pdf.png'", $output, $return);
当我运行从它的工作原理命令行命令,既,当我使用运行它作为根,当我运行它_www(Web服务器的用户):
sudo -u _www /usr/local/bin/convert '/path/to/file.pdf'[0] -background white -alpha remove -thumbnail 600x '/path/to/file.pdf.png'
但当exec命令运行时,不创建的缩略图。 $ output数组为空,$返回值为1(一般错误)。
此外,当我为其他类型的文件生成缩略图时,我完全没有任何问题。例如我使用的GIF:
exec("/usr/local/bin/convert '/path/to/file.gif'[0] -thumbnail 600x '/path/to/file.gif'", $output, $return);
我对JPG,PNG或BMP也没有问题。这导致我认为问题可能与GhostScript有关,因为只有PDF需要GhostScript来生成缩略图。作为最后一条评论,缩略图生成在我的本地主机和我的服务器上均失败。
我出来的想法,任何人都有吗?谢谢!
我希望转换为您提供一些有意义的错误,您是否从过程中捕获stdout和stderr?你最可能的问题是,当你执行转换时,环境(例如PATH)是不同的,所以转换根本找不到Ghostscript。 – KenS
谢谢,我从来没有能够捕捉到你提到的错误日志,但是你的第二个评论让我朝着正确的方向前进,请检查我的答案以获取详细信息。 – Sophivorus