为什么通过Web服务器调用函数时不执行?

时间:2014-01-16 20:54:46

标签: python ajax apache2 raspberry-pi raspbian

有一个python脚本:

#!/usr/bin/env python
import sys
import subprocess

subprocess.call("sudo /var/www/scripts/setPwm "+ sys.argv[1],shell=True)
print ("Content-type: text/plain;charset=utf-8\n\n")
print("sudo /var/www/scripts/setPwm "+ sys.argv[1])
print("ok\n")

在本地运行时,它会点亮指定强度的LED。通过网站调用时,它可以正确打印,但LED不会亮起。

当我打电话

http://sauna/scripts/setLED.py?1000

打印出来:

sudo /var/www/scripts/setPwm 1000
ok

所以参数显然正确传递,apache日志中也没有错误。仍然没有光:(

1 个答案:

答案 0 :(得分:0)

问题是,apache服务器作为不同的用户(www-data)运行而不是I.将用户(www-data)添加到/etc/sudoers以获取需要运行的特定可执行文件以root帮助。