質問: php介してpythonを実行するプログラムを書いて実際にターミナル上でphp プログラム名.phpで実行すると問題なく動作するのですが、これをweb上で(http://IP/プログラム名.php)実行するとphpは実行されるのですが、pythonは実行されません。 そこでcatで/var/log/auth.logの中身を覗いたら pam_unix(sudo:session): conversation failed pam_unix(sudo:session): auth could not identity password for [www-data] www-data : command not allowed ; tty=unknown ; pwd=/var/www/html ; user=root ; command=/ usr/bin/python /var/www/html/gpio.py というエラーがでてきます。どうすれば改善されるでしょうか?よろしくおねがいします**ボールドテキスト**
回答: ターミナルで実行する場合と、Webサーバ経由で実行する場合では、ユーザが異なることが原因と考えられます。 ターミナルでは、kanan_pyさんユーザの権限で実行されますが、Webサーバは`www-data`ユーザの権限で実行されます。 そこで、どのようにphpからpythonを呼んでいるかにも依存しますが、ディレクトリに読み書きの権限が無ければ、実行はできません。 また、ログによると、`sudo`コマンドを使用していますか?使用している場合、`/etc/sudoers`で許可を与えられたユーザしかsudoコマンドを実行できませんので、これも失敗の原因となりえます。