我正在尝试使用Apache执行一个Python程序。然而,Apache只会提供该文件而不实际执行它。该文件的权限为r/w/x,位于/var/www
目录下。我将在此之后发布httpd.conf
和程序代码的内容。我还尝试将Python脚本作为.cgi
文件运行,但也没有成功。同时,我已经将mod_python
和mod_wsgi
模块加载到了Apache中。
Python示例:
#!/usr/bin/python
# enable debugging
import cgitb
cgitb.enable()
print "Content-Type: text/plain\r\n\r\n"
print
print "Hello World!"
httpd.conf:
AddHandler cgi-script .cgi .pl
AddHandler python-program .py
我知道httpd.conf文件很小,但是在我安装apache时,这个文件里什么都没有。我还要说明的是,这只是为了学习如何在apache中运行python的基础知识,不是为了生产使用。 感谢您的帮助!
编辑
我使用的操作系统是Ubuntu 10.04,apache版本为2。我有python版本为2.6,当调用#!/usr/bin/env python
时会自动使用它。
我遇到了两个主要错误,第一个错误是即使文件和文件夹的权限为777,文件也无法被找到。来自日志的错误信息是
[Sun Feb 05 13:29:44 2012] [error] [client 192.168.1.3] File does not exist: /var/www/poit-0.1
这个错误是针对一个我没有编写的不同的Python脚本。奇怪的是,当从浏览器窗口访问文件夹时,该文件出现在索引中。然而,当我导航到该文件时,我会遇到上述错误。
我遇到的另一个错误是头部过早结束。错误如下:
[Sun Feb 05 12:10:19 2012] [error] (8)Exec format error: exec of '/var/www/pyth.py' failed
[Sun Feb 05 12:10:19 2012] [error] [client 192.168.1.3] Premature end of script headers: pyth.py