使用Apache搭建Python服务器

目录

菜鸟我搭建可用Python的Apache服务器花了好几天时间,大部分时间都花在寻找合适的Apache版本上。调通后发现,安装过程如此简单,为什么还花了这么多时间,效率低下。

软件准备

Apache

我找到这个版本:2.2.26 VC9 OpenSSL 0.9.8y,文件为httpd-2.2.26-win32-ssl_0.9.8-VC9.zip
下载网址:<//www.apachelounge.com/download/additional/>

Python

使用2.7.x版本,这里需要注意,因为上面的apache是32位版本,所以这里的Python需要安装32位版本。我卡在这个问题很长时间才发现,期间重装各种不同版本的Python都没有解决问题,直到选择32位版本。

mod_wsgi

使用3.3版本,文件为mod_wsgi-win32-ap22py27-3.3.so
下载网址:<//www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi>
该地址目前只有3.4版本(最新版本?)。

安装

Apache安装配置过程省略。
mod_wsgi只需要将文件拷贝到apache的modules目录即可,最好重命名为mod_wsgi.so,这样以后更新时不需要改配置文件。
参考:
modwsgi–Installation On Windows

配置

在apache的httpd.conf中加载mod_wsgi模块,设置映射关系,设置目录访问权限,添加文件类型py。因为我在virtualenv中开发项目,所以需要指定python的根路径和python 的库路径。
[code]
LoadModule wsgi_module modules/mod_wsgi.so
WSGIPythonHome D:/project/web/python/local/env/env-work-dell
WSGIScriptAlias / D:/project/web/python/local/nwp/mysite/index.wsgi
WSGIPythonPath D:/project/web/python/local/env/env-work-dell/Lib/site-packages
AddType text/html .py
<directory D:/project/web/python/local/nwp/mysite/>
Order deny,allow
Allow from all

[/code]
参见
mod_wsgi-Quick Configuration Guide
mod_wsgi-VirtualEnvironments

使用

我在mod_wsgi中使用flask,添加index.wsgi作为启动脚本,主要是添加flask项目根目录到环境变量。
[python]
import sys
sys.path.insert(0, ‘D:/project/web/python/local/nwp/mysite’)
from windroc_site import app as application
[/python]
参考
Flask的mod_wsgi(Apache)文档