Python文件调用状态500

时间:2018-07-23 17:52:22

标签: python apache

我有一个非常基本的Python脚本作为CGI运行,我只能使用print语句运行它,它们以HTML形式执行和显示。当我尝试执行任何文件系统调用(例如使用日志记录,制作文件或使用子进程)时,出现错误500。

#!/usr/bin/python
import cgitb; cgitb.enable()
import cgi
import sys
from subprocess import call

call('ls') #Error here, if I remove I get no error 500 and see "Hello"
form = cgi.FieldStorage()


print "Content-Type: text/html"
print
print "<html><body>Hello"
print "</body></html>"

CGI脚本具有执行权限:

chmod a+x example.cgi

在我的Apache配置中,我有虚拟主机来执行CGI设置:

<Directory "/path/to/cgi/cgi-bin/">
    AddHandler cgi-script cgi pl
    Options +FollowSymLinks +ExecCGI
    AllowOverride None  
</Directory>

并为Apache设置CGI模块:

sudo a2enmod cgi

如果我直接在服务器上运行cgi脚本,则所有文件操作都可以正常工作,如果我尝试从浏览器访问它,即example.com/test.cgi,它将显示500错误。我还运行了dos2unix以确保其格式正确。

1 个答案:

答案 0 :(得分:0)

尝试使用os.system('ls')代替通话,或者在启用 cgitb 之前使用它。