B 脚本在命令行中运行,但不能通过 PHP 运行

B 脚本在命令行中运行,但不能通过 PHP 运行

我正在尝试通过 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 文件,而不必通过浏览器进行测试。这使得测试速度快了很多。

相关内容