无法从php执行python脚本

无法从php执行python脚本,php,python,Php,Python,我在吃覆盆子馅饼。包括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)

我在吃覆盆子馅饼。包括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)
是的,我知道这不明智,但我正在努力解决这个问题。 它使用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`;
?>
现在有人告诉我为什么这不管用?我尝试了不同的版本,即使用不同的权限移动文件。。我也尝试过使用php的exec函数……请帮帮我。

将我作为守护进程运行

index.php


是否有一种可能的解决方案

您如何知道它不起作用?为什么不在python文件的顶部添加一个打印或创建一个文件。。。看看有没有人打电话来…你试过这个吗?您是否已将python文件设置为可执行文件?@JoranBeasley因为我正在使用GPIO,并且已经使用了一个多小时……我尝试了很多方法/是的,python文件是一个可执行文件,我可以从命令行调用@EL3PHANTENOkey。但是脚本运行后是否应该删除该文件?一旦遇到它,它会立即删除它。。。但是,如果用户刷新了php页面,那么将其移动到最后可能是明智的,我如何将其作为守护进程启动呢?非常感谢你,我迫不及待地想试试这个,看看它是否有效@乔兰比斯利刚试过这个…没用。也许我做错了什么我不知道。它应该有用。。。输出log.txt文件是否显示?open_gate.txt出现了吗。。。您可能希望在两个脚本中使用open_gate.txt的绝对路径,以防它们在不同的目录中查找。。。要将其作为守护进程运行,只需从启动脚本中调用它在后台运行,或者手动将其称为python my_script.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"
<?php
if (($_POST["safe2"]) != "good") {
    header("Location: http://xx.xxx.xx.xxx/index.html");
}
file_put_contents("open_gate.txt"," ");
?>