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

我试图遵循几个关于设置mod_python的Google教程,但每次都失败。你有一个好的,一步一步的,坚如磐石的howto?

我的开发盒是OS X,产品 - Centos。

0

4 答案

是的,mod_python设置起来很麻烦。这是我做到的。

在httpd.conf中:

LoadModule python_module modules/mod_python.so


  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程序重复配置。

0
额外

你在UNIX或Windows上运行Python吗?

An alternative to mod_python and FastCGI is mod_wsgi. You can find out more at modwsgi

我已经在Solaris上构建并安装了这个工具,没有问题。我之前曾尝试使用mod_python,但遇到了构建过程中共享库的问题。有良好安装文档可用。

0
额外

在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 /文档/ modpython /

0
额外
关于mod_python的信息已经从Django项目站点中删除,因为他们现在推荐使用mod_wsgi - docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi
额外 作者 Will Abson,

对我来说问题不在于Apache,而是在了解mod_apache如何实际使用.py文件。模块级语句(包括 if __name __ =='__ main __'部分中的模块级语句) not 被执行 - 我假定在命令行中运行脚本的stdout会成为服务器会输出的内容,但这不是它的工作原理。

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

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

0
额外