我正在尝试在我的服务器上运行此脚本。
#!/usr/bin/python
print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2>'
print '</body>'
print '</html>'
我在python文件中有该代码。我将文件上传到cgi-bin文件夹。然后我设置了权限,以便勾选每个方框(完全许可)。然后我试图查看该页面。但我得到以下错误。
500:内部服务器错误
当无法实现服务器上运行的脚本或文件或目录的权限分配不正确时,会生成此错误
故障排除建议:
通过重命名.htaccess文件(如果存在)暂时禁用任何重写规则。
确保任何CGI或Perl脚本至少具有.755。权限。
如果尝试运行PHP并且出现此错误,则/ cgi-bin中可能包含无效的php.ini,或者可能缺少此文件夹中的php.dat文件。
我如何解决这个问题,以便我可以开始编写脚本来加入我的网站?
所有代码都是&#34; Hello World&#34;,该脚本适用于其他服务器。什么有一个php.dat与我的python有关。如果PHP文件只有机器语言的一半,我的意思是怎么理解......例如,
Ü™ ì™ ð™ ô™ ø™ ü™ š
š
答案 0 :(得分:0)
PHP在这种情况下无关紧要。如果你使用的是PHP,那就提到了,但你不是,所以你可以忽略它。
这个错误有很多可能的原因,所以从一开始就开始工作。
要检查的第一件事是服务器错误日志文件,如果您有权访问它们,它们可能会立即显示问题。
接下来检查您的服务器是否已正确配置为以{cgi}身份运行.py
脚本。另外,请检查cgi-bin目录权限。
验证python二进制文件位于服务器上的/usr/bin/python
。 BTW,一个更好的选择&#34; shebang&#34;是:
#!/usr/bin/env python
因为它对路径不太敏感。
代码中的错误也可能导致http 500.您的代码适用于Python 2.它不太可能,但服务器可能正在使用Python 3?
答案 1 :(得分:0)
从other question你说你使用的是Python 3.4。您显示的脚本将在Python 2中运行,但在Python 3中不会运行,因为print语句的语法已更改 - 它现在是一个函数。
要修复脚本以便它在Python 3中运行,请将打印语句的所有更改为函数:
#!/usr/bin/env python
print("Content-type:text/html\r\n\r\n")
print('<html>')
print('<head>')
print('<title>Hello Word - First CGI Program</title>')
print('</head>')
print('<body>')
print('<h2>Hello Word! This is my first CGI program</h2>')
print('</body>')
print('</html>')
我也改变了&#34; shebang&#34;在脚本的顶部运行路径中的任何python。
如果这不能解决问题,请查看我在上一个答案中提出的建议,即查看服务器日志中的错误,检查文件和目录权限,确保运行正确Python版等。
最后,与您的托管服务提供商联系 - 我相信他们可以建议您如何正确设置,并且可能会在他们的网站上有说明 - 找到并关注它们。