私はラズベリーパイを食べています。次のようなPythonスクリプトを含むすべてのファイルのアクセス許可:
#!/usr/bin/python
from time import sleep
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
GPIO.output(11, False)
sleep(0.4)
GPIO.output(11, True)
sleep(1.6)
GPIO.output(11, False)
sleep(1)
はすべて所有されてwww-data
おり、すべてのファイルは777に設定されています(はい、これは賢くないことはわかっていますが、これを修正しようとしています)。sudoを使用して実行され、visudoファイルは次のとおりです。
www-data ALL=(ALL) NOPASSWD: /var/www/gateopener.py /usr/bin/python /bin/chmod
そしてここにPHPがあります...
<?php
if (($_POST["safe2"]) != "good") {
header("Location: http://xx.xxx.xx.xxx/index.html");
}
ignore_user_abort(true);
set_time_limit(0);
`/usr/bin/sudo /var/www/gateopener.py`;
?>
今、誰かがなぜこれが機能していないのか教えてくれますか?私はそれのさまざまなバリエーションを試しました(EIはさまざまな権限を使用してファイルを移動します)。私もphpのexec()
関数を使ってみました...助けてください。
run_me_as_daemon.py
#!/usr/bin/python
from time import sleep
import RPi.GPIO as GPIO
import os
while True:
if not os.path.exists("open_gate.txt"):continue
os.remove("open_gate.txt") # FILE DELETE !!! so we dont re-enter
with open("log.txt","w") as f:
print >>f,"Opening GATE @ %s"%(time.strftime("%x %X"),)
GPIO.setmode(GPIO.BOARD)
print >>f, "Set Mode To %s"%(GPIO.BOARD,)
GPIO.setup(11, GPIO.OUT)
print >>f, "SET 11 to %s"%(GPIO.OUT)
GPIO.output(11, False)
print >> f,"output low signal 11"
sleep(0.4)
GPIO.output(11, True)
print >> f,"output high signal to 11"
sleep(1.6)
GPIO.output(11, False)
print >> f,"output low signal 11"
sleep(1)
print >> f,"Competed TASK"
index.php
<?php
if (($_POST["safe2"]) != "good") {
header("Location: http://xx.xxx.xx.xxx/index.html");
}
file_put_contents("open_gate.txt"," ");
?>
考えられる解決策の1つです
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加