gpt4 book ai didi

php - 从 Apache Laravel PHP Controller 在 Raspberry PI 上执行 python 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 11:44:15 24 4
gpt4 key购买 nike

我在/home/pi/Test.py 中的覆盆子上有一个 python 脚本,可以从 laravel php Controller 调用它。

在 Raspberry 上安装了 Raspian、Apache、PHP 7.3、Python

我通过 cmdline 试过了

python Test.py 4444 > 有效

通过本地 php 服务器

php artisan serve 

/localhost:8000/setValue/666 > 有效,返回值 0

然后我将应用程序部署到Apache2目录

/var/www/html/Project

我再次调用服务

localhost:80/Project/setValues/666 > nothing, returnvalue 1

这是我的代码

chdir('/home/pi');
$cmd('python Test.py ' . $param);
exec($cmd,$out,$status);
return $status

从 php 调试服务器执行此操作返回“0”,来自 apache“1”

我试过了

exec ()
shell_exec()
passthrough()

一切都一样 - 在本地服务器上工作,而不是在 apache 上工作。

我在 python 脚本和 laravel 项目中将所有者更改为 www-data 并将权限更改为 775,我还将 www-data 添加为 sudoer 但没有任何效果。

我认为必须对可执行权限做一些事情,但还能做什么?

编辑:我在 Apache error.log 中发现了一条注释

GPIO.setup(数据,GPIO.OUT)运行时错误:未在 RPi 上运行!

似乎 www-data 无法访问 GPIO 设置,用户“pi”虽然可以,这意味着 - 如何让 www-data 拥有与用户“pi”相同的权限?

最佳答案

经过几个小时的努力,我找到了答案:

首先将 www-data 添加到 gpio 组

>sudo adduser www-data gpio > not working

然后我升级了固件

> sudo rpi-update

它终于在 Apache 服务器上运行了。感谢这个帖子 https://raspberrypi.stackexchange.com/questions/40105/access-gpio-pins-without-root-no-access-to-dev-mem-try-running-as-root和这个用户 https://raspberrypi.stackexchange.com/users/13650/joan有效。非常感谢!

关于php - 从 Apache Laravel PHP Controller 在 Raspberry PI 上执行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58319315/

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