PHP exec() 在通过浏览器执行时不会执行 shell 命令
我有一个特定的PHP脚本,它调用exec()来执行将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脚本.php”转换文件)
我也尝试过用system()切换exec()。
最后,我过去曾经遇到过这个问题,但不记得我是如何修复的。
我知道我错过了一些东西,所以我希望其他人像我一样经历过这种情况,并记得如何解决它!
提前感谢您提供的任何帮助。
亚历克斯