从PHP打开python脚本时权限被拒绝

时间:2017-01-10 03:00:46

标签: php python raspberry-pi raspbian

我有一个PHP脚本,它将创建数据并将其附加到文本文档。然后,该脚本将执行将读取该文档的python脚本,并在raspberry pi上移动创建另一个文档。我一直在寻找过去几个小时的不同解决方案,而且它们似乎都归结为权限。根据我的发现,我设置了以下内容:

  

-rwxrwxrwx 1 www-data www-data 314 Jan 9 16:09 AlbumString.py

     

-rwxrwxrwx 1 www-data www-data 74 Jan 9 21:31 display.txt

AlbumString.py是python脚本,display.txt是PHP文件的权限,Python脚本是从中读取的。进一步研究somone建议查看apache的错误日志。当我看到这个时,我看到我收到了一个权限错误:

Traceback (most recent call last):
  File "AlbumString.py", line 13, in <module>
    display = open('/media/pi/external/Photos/' + templist.pop(0),'a')
PermissionError: [Errno 13] Permission denied: '/media/pi/external/Photos/Erik.txt'

如果文件已存在,我的python代码将创建或附加文件。在运行此迭代的情况下,文件Erik.txt不存在,因此必须创建它。 AlbumString.py的代码:

#!/usr/bin/python

import sys
import json
import base64

album = open('/var/www/html/uploads/display.txt')
templist = []
a= 0
for x in album:
    templist.append(x.rstrip('\n'))
album.close()
display = open('/media/pi/external/Photos/' + templist.pop(0),'a')
for x in templist:
    display.write(x+'\n')
display.close()

我用来调用python脚本的PHP代码:

fclose($fh);
$testing = shell_exec("python3 AlbumString.py");
if(!$testing){
    echo "You are a failure!<br>";
} else {
    echo "You are a genius<br>";
}
      echo "end of document";
}

我还在我的sudoers文件中添加了www-data,这是没有建议但是我会给它一个机会,但没有任何效果。 PHP正确写入文件,如果我从控制台调用python脚本,也可以正确执行。

0 个答案:

没有答案