首页 > 解决方案 > 如何在 Raspberry Pi 上从 Apache 运行 Python 脚本?

问题描述

因此,在 Raspberry Pi 上,我正在使用带有 Web 界面的相机应用程序,我想通过添加 neopixel 来添加 LED 照明。我已经成功地做到了这一点,现在可以打开和关闭运行两个 python 脚本。

解释和问题:

我有一个/usr/local/bin可执行的python脚本。
它归“根根”所有。

我有一个/var/www/html/macros可执行的 shell 脚本,并且必须在/usr/local/bin. shell 脚本归“ www-data ”所有

当我手动运行 python 文件时,它会执行脚本。
当我手动运行 shell 脚本时,它会执行 python 脚本。

当我通过单击网页上的按钮运行 shell 脚本时,它似乎正确执行了 shell 脚本,但是,它似乎没有执行 python 脚本。
我能做些什么来解决这个问题?

我对权限不是很有经验,但我想强调一个事实,即这是一个不包含任何敏感信息的封闭系统。所以安全/最佳实践不是问题。我只想完成这项工作。

标签: pythonapacheshellraspberry-piraspbian

解决方案


现在,经过 11 个小时和一群人一起思考,我们找到了解决问题的方法。

问题原来是Web界面只能以‘www-data’执行,而python脚本所依赖的NeoPixel库需要以sudo/root执行。

这两个因素使得永远不会有直接的方法让脚本一起工作。

然而,出现了使用某种管道的想法。

一位出色的用户建议我使用 sshpass。这将允许将数据传递给 ssh 并使其本质上以 root 用户身份执行。

来自 Web 界面的数据将被转发到 sshpass,这将成功地以所需的权限运行所需的脚本。

特别感谢 RRF 的 Minty Trebor 和 Falcounet 为 LPC/STM Discord!


推荐阅读