天天看點

php擷取python執行進度_從Php執行Python腳本

我的覆盆子pi上有一個PHP網頁,帶有2個按鈕(打開和關閉)

按鈕按鈕重定向到On.php

關閉按鈕重定向到Off.php

在“/usr/lib / cgi-bin”中我有一個我想要執行的python腳本(script.py)

我可以通過輸入完美地從終端執行它

cd /usr/lib/cgi-bin

sudo python script.py

如果我從終端這樣做,它的工作原理.

問題是我的“/ var / www”檔案夾中的PHP檔案(On.php).

這就是我寫的:

exec('cd /usr/lib/cgi-bin');

exec('sudo python script.py');

?>

為什麼腳本從終端執行,而不是從我的PHP執行?

解決方法:

您不能使用PHP腳本中的sudo. Apache正在從使用者運作(www-data generaly),是以編輯此檔案:/ etc / sudoers

然後添加以下行:

www-data ALL=(ALL) NOPASSWD:ALL

小心!這将授權所有函數由PHP腳本調用,您可以通過腳本或Python指令調整更改“ALL”.

然後在exec指令中确定使用者的精确度:

exec('sudo -u www-data python /usr/lib/cgi-bin/script.py')

标簽:python,php,raspberry-pi,apache2,execute

來源: https://codeday.me/bug/20190923/1815634.html