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

dea*_*mer 20 python apache apache2

我尝试在设置mod_python时使用几个谷歌搜索教程,但每次都失败了.你有一个好的,一步一步,坚如磐石的howto?

我的开发盒是OS X,制作 - Centos.

Cri*_*ian 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/)

  • 有关mod_python的信息已从Django项目站点中删除,因为他们现在建议使用mod_wsgi - https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi/ (2认同)

Mar*_*son 10

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

在httpd.conf中:

LoadModule python_module modules/mod_python.so

<Directory "/serverbase/htdocs/myapp">
  AddHandler mod_python .py
  PythonHandler myapp
  PythonDebug On
Run Code Online (Sandbox Code Playgroud)

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

$ /serverbase/htdocs/myapp$ ls -l
total 16
-r-xr-xr-x 1 root sys        6484 May 21 15:54 myapp.py
Run Code Online (Sandbox Code Playgroud)

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


Bri*_*tle 5

你在UNIX或Windows上运行Python吗?

mod_python和FastCGI的替代方法是mod_wsgi.您可以在modwsgi找到更多信息

我在Solaris上构建并安装了这个没有问题.我以前尝试过mod_python但是在构建过程中遇到了共享库的问题.有很好的安装文档可用.