本文介绍了500配置python CGI时出现内部服务器错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已在crunchworld.conf文件中添加了AddHandler cgi-script .cgi .py。
我在/etc/apache2/conf-enabled中有符号链接/etc/apache2/conf-available/crunchworld.conf
确保您的CGI脚本设置了正确的权限:chmod 0755 hello.py只是为了确保。
您的脚本似乎是.py,而您的Apache配置似乎只指定了.cgi个文件。您的AddHandler应为AddHandler cgi-script .cgi .py。
您应该在/etc/apache2/conf-enabled中对/etc/apache2/conf-available/crunchworld.conf文件进行符号链接(如果您还没有这样做)。为此,请运行以下命令:cd /etc/apache2/conf-enabled; sudo ln -s ../conf-available/crunchworld.conf。
如果您对您的Apache配置进行任何更改,请始终记住重新启动:例如sudo service apache2 restart。
检查您的hashbang行是否正确。是否存在/usr/bin/python2.7?您可以尝试改为设置为#!/usr/bin/env python或#!/usr/bin/env python2。(如果可能,最好在您的系统上切换到python3)。
再次检查阿帕奇错误日志。例如tail -20 /var/log/apache2/error.log(或您的日志所在位置)。
您可以尝试使用cgitb模块进行进一步调试(请参阅docs.python/3/library/cgitb.html)。
我一直在尝试使用CGI运行一个简单的python脚本hello.py,但收到了500内部服务器错误。
我的python代码。
#!/usr/bin/python2.7 print '<html>' print '<head>' print '<title>Hello World - First CGI Program</title>' print '</head>' print '<body>' print '<h2>Hello World! This is my first CGI program</h2>' print '</body>' print '</html>' 我运行PYTHON脚本的目录在<[2-1]中。我启用的conf文件在`/etc/apache2/conf-available/crunchworld.conf中conf文件如下所示
<Directory /var/www/crunchworld>
Options +ExecCGI
AddHandler cgi-script .cgi
Options All
AllowOverride All
Order allow,deny
Allow from all
</Directory>
我已启用CGI并为文件hello.py授予了必要的权限,但它仍然显示内部服务器错误。当我检查日志时,我看到
脚本输出在标题之前结束:hello.py
我已研究了该错误,并为该文件授予了适当的权限,但它不起作用。
任何帮助都将不胜感激。提前谢谢。
我所做的进一步更改。
2.我已授予文件hello.py的权限
4.我已经在路径/usr/bin/python2.7 上安装了python2.7,也尝试使用#!/usr/bin/env python,但仍然不起作用。
检查日志后发现End of script output before headers: hello.py, referer: localhost/
感谢您的建议,但它仍然显示500内部错误。
cgi推荐答案脚本还必须输出标头信息。
最少需要Content-type标头,在本例中应将其设置为text/html。
将其添加到CGI脚本的开始中(在打印任何其他内容之前)。
print 'Content-type: text/html '注意尾随的额外换行符--必须在标题和内容本身之间至少保留一个空行。
更新:
有关进一步的故障排除,请执行以下操作:
更多推荐
500配置python CGI时出现内部服务器错误
发布评论