4

解決済み

新しい質問を書く前に、ウェブ全体で解決策を検索します。私はapache2、php5.4、sslを備えたラズベリーパイを持っています。PHPスクリプトからPythonスクリプトを実行したい。PHP スクリプトは、777 パーミッションを持つ /var/www 内にあります。PHP ファイル:

shell_exec('python /home/pi/Desktop/Python/prova.py');

Prova.py には 750 パーミッションがありますが、彼のグループ所有者は www-data であり、shell_exec('whoami'); によって出力されたユーザーです。動作します。Prova.py:

print "Hello World"

スクリプトはコマンド ラインから直接動作します。

php filename.php

ブラウザからは動かない!

最後に、ブラウザからスクリプトを実行することに成功しました。関連する権限で www-data ユーザーを sudoers ファイルに追加する必要がありました。

www-data ALL=(ALL) NOPASSWD: /etc/bin/python 
4

2 に答える 2

4

問題は次のとおりです。コンソールから php スクリプトを起動すると、現在のユーザーの権限で php が起動されます。プロセスをブラウザで開いて実行すると、web-server-process のユーザーの権限が付与されます。

あなたのグループ権限は、何があっても7でなければなりません。Python スクリプトのパーミッションを777(すべてのユーザーに対して read-write-execute) に変更するか、または に変更し770て、web-servers ユーザーがファイルに設定されたグループ内にいることを確認してください。

于 2013-09-09T00:10:08.420 に答える