解决
在撰写新问题之前,我会在整个网络上搜索解决方案。 我有一个覆盆子pi与apache2,php5.4,ssl。 我想从php中执行一个python脚本。 php脚本位于/ var / www内,具有777权限。 Php文件:
shell_exec('python /home/pi/Desktop/Python/prova.py');
Prova.py拥有750个权限,但他的群组所有者是www-data,这是由shell_exec('whoami')打印的用户;哪个有效。 Prova.py:
print "Hello World"
该脚本直接从命令行运行:
php filename.php
它不适用于broswer!
最后我成功地从浏览器执行脚本。 我不得不将www-data用户添加到sudoers文件及其相关权限:
www-data ALL=(ALL) NOPASSWD: /etc/bin/python
答案 0 :(得分:3)
你的问题是这样的: 通过控制台启动php脚本时,您将启动具有当前用户权限的php。 通过在浏览器中打开进程来执行进程时,它将拥有web-server-process用户的权限。
无论如何,您的群组权限必须为7。将python脚本权限更改为777
(每个人的读写执行)或将其更改为770
并确保您的Web服务器用户位于设置为该文件的组内。
答案 1 :(得分:-2)
在尝试构建Web界面以更改漆黑pHAT上的图像时遇到类似的问题。原来www-data无法访问GPIO.OUT。通过运行“ sudo -u www-data php index.php”进行测试,它返回了我正在寻找的错误。因此,我授予www-data GPIO权限“ usermod -a -G gpio www-data”,而不是添加到suddoers。