给出内部服务器错误的基本python脚本

给出内部服务器错误的基本python脚本,python,Python,我使用的是hostgator,他们发誓python是受支持的,但我还没有看到一个运行的python脚本。我已经尝试了几个脚本,我的最新脚本是他们在其网站上提供的脚本: #!/usr/bin/python print "Content-type: text/html\n\n"; print "<html><head>"; print "<title>CGI Test</title>"; print "</head><body>

我使用的是hostgator,他们发誓python是受支持的,但我还没有看到一个运行的python脚本。我已经尝试了几个脚本,我的最新脚本是他们在其网站上提供的脚本:

#!/usr/bin/python
print "Content-type: text/html\n\n";
print "<html><head>";
print "<title>CGI Test</title>";
print "</head><body>";
print "<p>Test page using Python</p>";
print "</body></html>";
我已经和我的主机(hostgator)谈过了,他们已经把它变成了一张罚单,这让我觉得他们那边出了问题。

有一个关于如何使用Python作为CGI的讨论

在你的情况下,问题是行尾。它们是每行末尾的隐藏字符

在类Unix系统上,程序文件中的行尾必须为 Unix风格的行结尾。这很重要,因为web服务器 检查脚本的第一行(称为shebang)并尝试运行 这里指定的程序。它很容易被Windows行混淆 结尾(回车和换行,也称为CRLF),因此 将文件转换为Unix行尾(仅换行符,LF)。这 可以通过文本模式通过FTP上传文件自动完成 而不是二进制模式,但首选的方式是告诉您的 编辑器保存带有Unix行结尾的文件。大多数编辑支持 这个

在Windows(即记事本)上,它们表示为(CR LF或
\r\n
),而在unix上则表示为(LF或
\n

在中,可以将行尾视为符号,如:查看->显示符号->显示行尾

要用unix换行符替换windows换行符,可以使用:搜索->替换

在替换对话框中,找到
\r\n
,并将其替换为
\n
。确保选择了扩展搜索模式


或者,您可以使用编辑->下线转换->UNIX格式


我知道这是一个老问题,但我在hostgator上也遇到了500个错误(一年前我就放弃了尝试)。几天前,A决定在他们的“”之后再试一次,但再次失败

我尝试更简单的方法:

#!/usr/bin/python
import sys
print sys.version_info
我再次收到500个错误,但是在与支持人员聊天后,他们给出了一条日志消息 说:

[错误][client 192.x.x.x]脚本中的头格式不正确。错误的头=(2,6,6,'final',0):test1.py

有了这些信息(日志消息包含python,因此在某种程度上它正在执行),我在中找到了这篇文章,我从中得到:

正如HTTP规范(以及来自HTTP服务器的错误消息)所指定的,在HTTP头和正文之间需要一个空行,否则服务器不知道头从哪里结束,正文从哪里开始

我将脚本更改为:

#!/usr/bin/python
print ""
import sys
print sys.version_info
成功了!。奇怪的是,在成功运行此脚本之后,教程中的示例(下面的代码)现在也适用于我

#!/usr/bin/python
print "Content-type: text/html\n\n";
print "<html><head>";
print "<title>CGI Test</title>";
print "</head><body>";
print "<p>Test page using Python</p>";
print "</body></html>";
#/usr/bin/python
打印“内容类型:text/html\n\n”;
打印“”;
打印“CGI测试”;
打印“”;
使用Python打印“测试页面”

”; 打印“”;

为什么它现在有效?我不知道,但至少我希望这个答案能帮助处理hostgator[缺乏]支持的问题。

我似乎找不到日志,我可以去哪里查看它们?cpanel?是的,cpanel查找Apache错误日志。[Sat May 19 09:11:38 2012][Error][client 74.129.48.242]文件不存在:/home/elkuzu/public_html/404.shtml[Sat May 19 09:11:38 2012][Error][client 74.129.48.242]文件不存在:/home/elkuzu/public_html/favicon.ico[Sat May 19 09:11:37 2012][Error][client 74.129.48.242]文件不存在:/home/elkuzu/public\u html/500.shtml是否尝试将test.py放在其他目录中?这些错误消息正好在apache查找处理404和500个错误请求的页面时出现,我将其放在根文件夹中,这导致它显示为文本文件。然后我更改了.htaccess以运行脚本,然后它给出了脚本的内部服务器错误。我尝试了.htaccess,这似乎只允许我从根文件夹运行.py,但它仍然显示为内部服务器错误。我试图在test.py脚本的底部添加一个额外的回车符,但没有任何更改。@Tyler我已经更新了我的答案-你能试试这个脚本吗?它将告诉您python版本。您不需要任何分号名称内部服务器错误,也不需要在错误日志中出现相同的错误:您使用的是哪种类型的行尾?请参阅“在类Unix系统上,程序文件中的行尾必须是Unix样式的行尾”,我只是使用;如上面代码所示的行结尾。我正在读你给我的链接。我认为服务器是Linux服务器。。。所以我正在尝试一些东西。
#!/usr/bin/python
print "Content-type: text/html\n\n";
print "<html><head>";
print "<title>CGI Test</title>";
print "</head><body>";
print "<p>Test page using Python</p>";
print "</body></html>";