不能运行" ls"来自python cgi的命令

时间:2014-10-27 10:48:44

标签: python linux apache cgi

我有一个Apache2服务器,可以运行python(.py)cgi。

每当我尝试跑步时:

print subprocess.call(['ls'])

我收到“500内部服务器错误” 错误日志:

[cgid:error] [pid 26234:tid 139903652325120] [client 10.200.8.23:55682] malformed header from script 'newpw.py': Bad header: newpw.py

但是当我运行“date”作为参数时,一切正常。 (返回1) print subprocess.call(['date'])

这就是我的整个剧本:

    #!/usr/bin/python
    import cgitb
    import subprocess

    cgitb.enable()

    print "Content-type: text/html"
    print

    print subprocess.call(['ls'])

由于

1 个答案:

答案 0 :(得分:1)

检查您的.py是否可执行。 如果没有,请按chmod +x newpw.py

更改

另外,尝试在标题中添加新行:

print "Content-type: text/html\n\n"

最后,尝试在子进程调用之前刷新stdout:

import sys
sys.stdout.flush()
print subprocess.call(['ls'])