Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t从php执行python脚本_Php_Python - Fatal编程技术网

Can';t从php执行python脚本

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

已解决

在写一个新问题之前,我会在网上寻找答案。 我有一个带有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:

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