Php

Bash 腳本在命令行中工作,但不是通過 PHP

  • October 28, 2015

我正在嘗試通過 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 腳本在命令行中完美執行,但是當我嘗試通過 PHP 在 Web 伺服器 (MAMP) 上執行它時,它沒有給我任何輸出。第一個命令似乎有效,但第二個命令什麼也沒給我。

任何幫助將非常感激。

最終歸結為權限問題。通過 Web 瀏覽器執行 Python 腳本所觸及的各個文件需要在 www-data 組中具有寫入權限。

我的錯誤是他們有閱讀和執行權,但沒有寫作權。因此,一旦我修改了適當的文件,一切都執行良好。

我也曾經sudo -u www-data command測試過 PHP 文件,而無需通過瀏覽器對其進行測試。這使得測試速度更快。

引用自:https://serverfault.com/questions/730864