python - 执行 .py python 会出现 apache 错误 2(内部服务器错误)

标签 python linux apache amazon-ec2

我正在尝试从我的 ec2 实例的 html 文件夹中执行 .py 文件。

我安装了 python 2.6.8,并配置了 httpd.conf 以识别并允许执行/var/www/html 目录中的 cgi .py 文件。

测试index.py文件有如下脚本:

#!/usr/bin/python

# enable debugging
import cgitb
cgitb.enable()

print "Content-Type: text/plain\r\n\r\n"
print "Hello World!"

每当我运行 mywebsite.com/index.py 时,浏览器都会提示存在内部服务器错误。从 httpd error_log 中,我得到以下信息:

[Sun Sep 09 21:52:46 2012] [error] (2)No such file or directory: exec of '/var/www/html/index.py' failed
[Sun Sep 09 21:52:46 2012] [error] Premature end of script headers: index.py

我认为正在发生的事情是 #!/usr/bin/python 没有找到执行脚本的 python。所以我在控制台中输入了以下内容:

ls -l -F /usr/bin/python*

它给了我以下信息:

lrwxrwxrwx 1 root root    9 Sep  7 18:31 /usr/bin/python -> python2.6*
lrwxrwxrwx 1 root root    9 Sep  7 18:31 /usr/bin/python2 -> python2.6*
-rwxr-xr-x 2 root root 3536 Jun 29 06:51 /usr/bin/python26*
-rwxr-xr-x 2 root root 3536 Jun 29 06:51 /usr/bin/python2.6*
-rwxr-xr-x 1 root root 1418 Jun 29 06:51 /usr/bin/python2.6-config*

因此从技术上讲,请求应该有效。我错过了什么?

注意:我应该提一下,.py 文件已经被 chmod 编辑为可执行文件并且具有 777 访问权限(暂时)。

编辑: 我安装了 WSGI,但我无法判断它是否正在运行。我还输入了 whereis python,得到了以下内容:

python: /usr/bin/python2.6-config /usr/bin/python /usr/bin/python2.6 /usr/lib/python2.6 /usr/include/python2.6

最佳答案

通过 Apache 运行 python 程序的最佳实践是使用 WSGI。

一个好的版本是: http://code.google.com/p/modwsgi/

一些快速入门指南可以让您了解如何配置一切以供使用: 安装 - http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide 配置 - http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide

在这两份文档之间,您应该拥有通过 mod_wsgi 配置和运行 python 应用程序所需的一切。具体关注http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide#WSGI_Application_Script_Filehttp://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide#Mounting_The_WSGI_Application一旦你将 mod_wsgi 加载到 Apache 中。

这里详述了他们建议您不要使用 CGI 的一些原因: http://docs.python.org/howto/webservers.html#common-gateway-interface

关于python - 执行 .py python 会出现 apache 错误 2(内部服务器错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12343368/

相关文章:

python - 在python中按值获取字典中具有相同值的键?

python - 使用条件语句替换 pandas DataFrame 中的条目

Java执行Linux脚本

apache - 在Pig Latin中加载UDF时发生ClassCastException错误

java - Axis2 Soap WS 客户端 : java. lang.NoClassDefFoundError: org/apache/ws/commons/schema/XmlSchema

python - 获取所有子元素

python - 在 Python 中解析日期并检索特异性

linux - 管道将输入拆分为命令

linux - 在 Makefile 中我们使用 'prefix' 还是 'PREFIX'?

php - 在 Apache/PHP 中管理随机数