500配置python CGI时出现内部服务器错误 [英] 500 internal Server error when configuring python cgi

查看:24
本文介绍了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

我已研究了该错误,并为该文件授予了适当的权限,但它不起作用。

任何帮助都将不胜感激。提前谢谢。

我所做的进一步更改

  1. 我已在crunchworld.conf文件中添加了AddHandler cgi-script .cgi .py

2.我已授予文件hello.py的权限

  1. 我在/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
'

注意尾随的额外换行符--必须在标题和内容本身之间至少保留一个空行。

更新:

有关进一步的故障排除,请执行以下操作:

  1. 确保您的CGI脚本设置了正确的权限:chmod 0755 hello.py只是为了确保。
  2. 您的脚本似乎是.py,而您的Apache配置似乎只指定了.cgi个文件。您的AddHandler应为AddHandler cgi-script .cgi .py
  3. 您应该在/etc/apache2/conf-enabled中对/etc/apache2/conf-available/crunchworld.conf文件进行符号链接(如果您还没有这样做)。为此,请运行以下命令:cd /etc/apache2/conf-enabled; sudo ln -s ../conf-available/crunchworld.conf
  4. 如果您对您的Apache配置进行任何更改,请始终记住重新启动:例如sudo service apache2 restart
  5. 检查您的hashbang行是否正确。是否存在/usr/bin/python2.7?您可以尝试改为设置为#!/usr/bin/env python#!/usr/bin/env python2。(如果可能,最好在您的系统上切换到python3)。
  6. 再次检查阿帕奇错误日志。例如tail -20 /var/log/apache2/error.log(或您的日志所在位置)。
  7. 您可以尝试使用cgitb模块进行进一步调试(请参阅https://docs.python.org/3/library/cgitb.html)。

这篇关于500配置python CGI时出现内部服务器错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆