Can';t从php执行python脚本
已解决 在写一个新问题之前,我会在网上寻找答案。 我有一个带有apache2、php5.4和ssl的覆盆子pi。 我想从PHPONE执行一个python脚本。 php脚本位于/var/www内,它拥有777权限。 Php文件:Can';t从php执行python脚本,php,python,Php,Python,已解决 在写一个新问题之前,我会在网上寻找答案。 我有一个带有apache2、php5.4和ssl的覆盆子pi。 我想从PHPONE执行一个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: pr
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数据用户添加到sudoers文件中:
你的问题是:
当通过控制台启动php脚本时,您正在使用当前用户的权限启动php。
当通过在浏览器中打开进程来执行该进程时,它将具有web服务器进程用户的权限
无论发生什么情况,您的组权限都必须为7。将python脚本权限更改为
777
(人人读写执行),或将其更改为770
,并确保您的web服务器用户位于设置为该文件的组中。我在尝试构建web界面以更改inky pHAT上的图像时遇到类似问题。原来www数据没有访问GPIO.out的权限。通过运行“sudo-uwww-data-php-index.php”进行测试,它返回了我要查找的错误。因此,我授予www数据GPIO权限“usermod-a-G GPIO www data”,而不是添加到suddoors中。Prova.py
!=prova.py
,检查python脚本的真正名称。您是否收到错误消息(检查服务器日志)?另外,www-data
需要有访问/home/pi/Desktop/Python/
的权限。我试图将prova.py移动到var/www的子目录中,现在……幸运的是,它工作了!为了播放声音,我尝试将python脚本复杂化。所以我导入了time和pygame库,问题又出现了。它通过命令行工作,但不通过浏览器。当前对该文件设置了哪些权限?
www-data ALL=(ALL) NOPASSWD: /etc/bin/python