【发布时间】:2010-10-07 00:56:37
【问题描述】:
我有一个调用 exec() 的 PHP 脚本来执行将 PDF 转换为 JPG 的命令。此命令在 bash 中运行良好。
要抢占您最初的故障排除猜测,请注意以下几点:
- safe_mode = 关闭
- 包含 PDF 和脚本的目录的权限设置为 777,此目录也是写入 JPG 的位置。
- 我传递给 exec() 的命令明确指向正在使用的二进制文件(例如 /usr/local/bin/convert)。
- display_errors = 开启
- error_reporting = E_ALL
- disable_functions = [空白]
- 我正在回显 exec() 的输出,但它什么也没有返回。默认运行的命令不返回任何内容。
当我从浏览器调用这个 PHP 脚本(访问 http://www.example.com/script.php)时,exec() 不会执行它的参数。
重要提示:我知道我的脚本或构建 bash 命令的方式没有问题,因为从 bash,我可以使用 'php' 执行脚本并且它可以工作(例如'php script.php' 转换文件)
我也尝试过用 system() 切换 exec()。
最后,我以前遇到过这个问题,但不记得我是如何解决的。
我知道我缺少一些东西,所以我希望其他人也像我一样经历过这个并记得如何解决它!
提前感谢您提供的任何帮助。
亚历克斯
【问题讨论】:
-
传递给转换的参数是什么?它们是否包含文件的完整路径?
-
在 PHP 5 中确保使用 E_ALL | E_STRICT 用于完整的错误报告。
-
更新 -- 重要:我发现这是 ImageMagick 的一个问题,并使用 GhostScript(使用更长的命令)而不是使用 ImageMagick 完成了 PDF 到 JPEG 的转换作为一个中间人。 PHP、我的权限或 exec() 没有问题。感谢您的所有意见!