在我的服务器上运行Python脚本

时间:2014-11-10 11:10:41

标签: python server

我正在尝试在我的服务器上运行此脚本。

#!/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文件只有机器语言的一半,我的意思是怎么理解......例如,

Ü™  ì™  ð™  ô™  ø™  ü™   š
  š 

2 个答案:

答案 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版等。

最后,与您的托管服务提供商联系 - 我相信他们可以建议您如何正确设置,并且可能会在他们的网站上有说明 - 找到并关注它们。