500配置python CGI时出现内部服务器错误 [英] 500 internal Server error when configuring python cgi
本文介绍了500配置python CGI时出现内部服务器错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我一直在尝试使用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
我已研究了该错误,并为该文件授予了适当的权限,但它不起作用。
任何帮助都将不胜感激。提前谢谢。
我所做的进一步更改。
- 我已在crunchworld.conf文件中添加了
AddHandler cgi-script .cgi .py
。
2.我已授予文件hello.py的权限
- 我在
/etc/apache2/conf-enabled
中有符号链接/etc/apache2/conf-available/crunchworld.conf
4.我已经在路径/usr/bin/python2.7
上安装了python2.7,也尝试使用#!/usr/bin/env python
,但仍然不起作用。
检查日志后发现End of script output before headers: hello.py, referer: http://localhost/
感谢您的建议,但它仍然显示500内部错误。
cgi
推荐答案脚本还必须输出标头信息。
最少需要Content-type
标头,在本例中应将其设置为text/html
。
将其添加到CGI脚本的开始中(在打印任何其他内容之前)。
print 'Content-type: text/html
'
注意尾随的额外换行符--必须在标题和内容本身之间至少保留一个空行。
更新:
有关进一步的故障排除,请执行以下操作:
- 确保您的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
模块进行进一步调试(请参阅https://docs.python.org/3/library/cgitb.html)。
这篇关于500配置python CGI时出现内部服务器错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文