如何设置Python脚本在Apache 2.0中工作?

时间:2008-08-07 18:24:12

标签: python apache apache2

我尝试按照几个关于设置mod_python的google教程,但每次都失败了。你有一个好的,一步一步的,坚如磐石的方法吗?

我的开发框是OS X,制作 - Centos。

4 个答案:

答案 0 :(得分:12)

在Apache上运行Python有两种主要方式。最简单的方法是使用CGI并编写普通的Python脚本,而第二种方法是使用Django或Pylons等Web框架。

使用CGI非常简单。确保您的Apache配置文件设置了cgi-bin。如果没有,请按照他们的文档(http://httpd.apache.org/docs/2.0/howto/cgi.html)。此时,您需要做的就是将Python脚本放在cgi-bin目录中,标准输出将成为HTTP响应。有关详细信息,请参阅Python的文档(https://docs.python.org/library/cgi.html)。

如果您想使用Web框架,则需要设置mod_python或FastCGI。这些步骤取决于您要使用的框架。 Django提供了有关如何使用Apache设置mod_python和Django的明确说明(http://www.djangoproject.com/documentation/modpython/

答案 1 :(得分:9)

是的,mod_python设置起来非常混乱。我就是这样做的。

在httpd.conf中:

LoadModule python_module modules/mod_python.so

<Directory "/serverbase/htdocs/myapp">
  AddHandler mod_python .py
  PythonHandler myapp
  PythonDebug On

并在您的应用程序目录中:

$ /serverbase/htdocs/myapp$ ls -l
total 16
-r-xr-xr-x 1 root sys        6484 May 21 15:54 myapp.py

对你希望在mod_python下运行的每个python程序重复配置。

答案 2 :(得分:5)

您是在UNIX或Windows上运行Python吗?

mod_python和FastCGI的替代方法是mod_wsgi。您可以在modwsgi

了解更多信息

我已经在Solaris上构建并安装了它,没有任何问题。我以前尝试过mod_python但是在构建过程中遇到了共享库的问题。有good install docs可用。

答案 3 :(得分:0)

对我来说问题不是在Apache设置中,而是在理解mod_apache如何实际使用.py文件。模块级语句(包括if __name__=='__main__'部分中的那些语句)执行 - 我假设在命令行运行脚本的stdout将是服务器输出的内容,但那是不是它如何运作。

相反,我编写了一个名为index()的模块级函数,并将其作为字符串返回页面的HTML。也可以使用其他模块级函数(例如otherFunction())作为URI中的其他段进行访问(例如,文件testScript/otherFunctiontestScript.py。)

显然,这比我原来的stdout概念更有意义。实际上使用Python作为脚本语言的能力更强,而不是一种非常棒的标记语言。