2016-09-17 9 views
0

どのボタンが選択されているかに応じて、ラジオコントロールされたプラグソケットを制御するPythonスクリプトを実行する必要があります。ボタンが押されてもpythonスクリプトが実行されていないと正しいメッセージが返されるという点ではうまくいくようです。PHPボタンを使ってpythonスクリプトを実行しようとしましたが、失敗しました

WWW-データはALL = NOPASSWD:は/ usr/binに/ Pythonの/home/pi/lampon.py

のために、少なくともPythonスクリプトを実行するために、Apacheのユーザー権限を与える必要があり、私はラインを追加しました電源ソケットをオンにしても動作しません。スクリプト自体は、piコマンドラインを介して実行されると機能します。助言がありますか? (PHPのコード下にある)

<html> 
<head> 
<meta name="viewport" content="width=device-width" /> 
<title>LED Control</title> 
</head> 
     <body> 
     LED Control: 
     <form method="get" action="energenie.php"> 
       <input type="submit" value="ON" name="on"> 
       <input type="submit" value="OFF" name="off"> 
     </form> 
     <?php 
      if(isset($_GET['on'])){ 
       shell_exec("python /home/pi/lampon.py"); 
       echo "LED is on"; 
     } 
     else if(isset($_GET['off'])){ 
       shell_exec("python /home/pi/lampoff.py"); 
       echo "LED is off"; 
     } 
     ?> 
     </body> 
</html> 

答えて

0

あなたは777にlampoff.pylampon.pyのアクセス権を設定しようとしたことがありますか?

chmod 777 /home/pi/lampoff.py && chmod 777 /home/py/lampon.py

+0

に最近、これに対処する別のポストだけではありますが、まだ何も試してみましたがありました – ARussell

0

私はあなたがそれはあなたは、/ etc/sudoersファイルにWWW-データユーザを追加する必要が意味している動作するために、「sudoの」Pythonスクリプトを追加する必要があると思います。

shell_exec("sudo python /home/pi/lampon.py"); 

または

exec("sudo python /home/pi/lampon.py"); 

Execute Python script from Php

関連する問題