我正在使用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>";
Run Code Online (Sandbox Code Playgroud)
我收到内部服务器错误:http: //elkuzu.com/cgi-bin/test.py
该文件具有755个权限,文件夹cgi-bin也是如此.他们拒绝帮助我解决他们所谓的"编码"问题...但是除了内部服务器错误之外,我已经尝试过并且只收到内部服务器错误,我认为问题在于他们.谁知道什么可能是错的?
错误日志:
[Sat May 19 09:11:38 2012] [error] [client 74.129.48.242] File does not exist: /home/elkuzu/public_html/404.shtml
[Sat May 19 09:11:38 2012] [error] [client 74.129.48.242] File does not exist: /home/elkuzu/public_html/favicon.ico
[Sat May 19 09:11:37 2012] [error] [client 74.129.48.242] File does not exist: /home/elkuzu/public_html/500.shtml
Run Code Online (Sandbox Code Playgroud)
我和我的主持人(hostgator)谈过,他们把它变成了一张票,这让我觉得有些事情已经结束了.
有关于如何使用Python作为CGI的文档.
在您的情况下,问题是行结束.它们是每行末尾隐藏的角色.
在类Unix系统上,程序文件中的行结尾必须是Unix样式行结尾.这很重要,因为Web服务器检查脚本的第一行(称为shebang)并尝试运行那里指定的程序.它很容易被Windows行结尾(回车和换行,也称为CRLF)混淆,因此您必须将文件转换为Unix行结尾(仅限换行,LF).这可以通过FTP以文本模式而不是二进制模式上传文件来自动完成,但首选方法是告诉编辑器使用Unix行结尾保存文件.大多数编辑都支持这一点.
在Windows(即记事本)上,它们表示为(CR LF,或\r\n),而在unix上它们是(LF或\n).
在Notepad ++中,您可以将行结尾视为符号,如下所示:视图 - >显示符号 - >显示行尾
要用unix替换windows换行符,可以使用:搜索 - >替换...
在替换对话框中,查找\r\n并替换它们\n.确保选择了扩展搜索模式.

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