![B 脚本在命令行中运行,但不能通过 PHP 运行](https://linux22.com/image/669337/B%20%E8%84%9A%E6%9C%AC%E5%9C%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E8%BF%90%E8%A1%8C%EF%BC%8C%E4%BD%86%E4%B8%8D%E8%83%BD%E9%80%9A%E8%BF%87%20PHP%20%E8%BF%90%E8%A1%8C.png)
我正在尝试通过 PHP 运行以下命令:
$output = shell_exec('sudo /Users/Derk/Code/automation/psc/pdfs.sh 1');
这将运行以下 bash 脚本代码:
sudo /usr/local/bin/pdftk cvcheck_template.pdf fill_form data.fdf output output.pdf flatten
sudo /usr/local/bin/convert -density 150 -gravity south -geometry +0+150 -composite output.pdf signature.png new_output.pdf
bash 脚本在命令行中运行完美,但当我尝试通过 Web 服务器 (MAMP) 上的 PHP 运行它时,它没有给出任何输出。第一个命令似乎有效,但第二个命令没有给出任何输出。
任何帮助将非常感激。
答案1
最终归结为权限问题。通过 Web 浏览器运行 Python 脚本所接触的单个文件需要在 www-data 组中具有写入权限。
我的错误是他们有读取和执行权限,但没有写入权限。因此,一旦我修改了相应文件的权限,一切就都正常了。
我还曾经sudo -u www-data command
测试过 PHP 文件,而不必通过浏览器进行测试。这使得测试速度快了很多。