gpt4 book ai didi

php - 树莓派 : Can't execute script. py 来自 PHP

转载 作者:行者123 更新时间:2023-12-01 04:10:26 25 4
gpt4 key购买 nike

更新:

在评论中提出建议后,我找到了我的 error.log (/var/log/apache2/error.log):

Traceback (most recent call last):
File "/var/www/html/nano.py", line 7, in <module>
GPIO.setup(17,GPIO.OUT)
RuntimeError: No access to /dev/mem. Try running as root!

我通过添加 sudo 解决了我的问题:

<?php
echo exec("sudo /usr/bin/python /var/www/html/nano.py");
?>

但是我还是不明白。当我从网络服务器调用 nano.py 时,我需要将其作为 sudo 运行,但是当我从终端(作为 pi 用户)运行 nano.py 时,我不必将其作为 sudo 运行。我以为我在编辑 sudoers 时授予了 apache root 访问权限。

谁能解释一下这个?这安全吗? (我的 apache 服务器目前只能通过我自己的 wifi 网络访问)

<小时/>

我知道这个问题已经被问过并回答过很多次,但我已经尝试了我能找到的所有解决方案,但我仍然无法从我的 PHP 网页执行我的 script.py。

我可以从终端执行我的 nano.py 脚本: nano.py

我的 apache 服务器也工作正常(如果需要,我可以显示文本)

nano.py 脚本:

#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(17,GPIO.OUT)
print "LED on"
GPIO.output(17,GPIO.HIGH)
time.sleep(1)
print "LED off"
GPIO.output(17,GPIO.LOW)

我有一个名为 nano.py 的 python 脚本,位于:/var/www/html/nano.py(-rwxrwxrwx 1 pi www-data 236 Jan 26 13:12 nano.py)和/home/pi/nano.py(-rwxr-xr-x 1 pi pi 225 Jan 26 13:19 nano.py)脚本都是相同的:

<?php
echo shell_exec("python /var/www/html/nano.py");
?>

我尝试了很多方法,但无法从我的 PHP 页面执行 nano.py:

  • 尝试了不同的路径(/var/www/html/nano.py/home/pi/nano.py nano.py)
  • 尝试过 shell_exec、exec
  • 尝试了不同的 python 路径 (python/usr/bin/python)

我尝试授予 apache sudo 访问权限:

www-data ALL=(ALL) NOPASSWD:ALL

我真的不知道我还有什么其他选择,所以我希望有人能帮助我。

最佳答案

尝试

<?php
echo shell_exec("/usr/bin/python /var/www/html/nano.py");
?>

很可能找不到您的 python 二进制文件。还要确保这些功能没有被您的 php.ini 阻止。

如果这不起作用,/var/log/apache2/error.log 可以告诉您有关该错误的更多信息。

关于php - 树莓派 : Can't execute script. py 来自 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35016098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com