我在python脚本中运行以下命令:
res = subprocess.Popen(["fswebcam", "-r 640x480", "grab.jpeg"], shell=False, stdout=subprocess.PIPE, cwd="/var/www/pics");
output = res.communicate()[0];
在手动调用脚本时运行正常。
但是当通过apache运行脚本时,我没有收到任何错误消息,但/ var / www / pics目录中没有出现任何图像。此目录已分配给www-data:www-data并具有写入权限。
我不明白为了让这项工作失去了我所缺少的东西。
答案 0 :(得分:0)
终于发现了这个问题,www-data用户不允许运行fswebcam,所以我在/etc/sudoers.d目录中添加了一个配置文件,允许用户通过www-data访问fswebcam。
以下是我的文件内容:
默认值:www-data!requiretty
%www-data ALL = NOPASSWD:/ usr / bin / fswebcam
我还必须在我的python脚本中修改对fswebcam的调用,添加" sudo"作为命令的开始。
res = subprocess.Popen([" sudo"," fswebcam"," -r 640x480"," grab.jpeg"] ,shell = False,stdout = subprocess.PIPE,cwd =" / var / www / pics");