服务器部署
本章完成以下内容:
- 版本需求
- Apache配置
- wsgi启动程序
一、版本需求
如果下面这一点没有做到,整个过程有99%的可能性会失败。
Apache,mod_wsgi和Python都必须用相同版本的C/C++编译器生成,它们要么是32位的,要么是64位的,不能混用。
目前(2016-09-05)推荐的为Apache 2.4, Python2.7.11, mod_wsgi VC9版本。
- Python安装2.7.11或者其他稳定版本。
- mod_wsgi-4.4.23+ap24vc9-cp27-cp27m-win32.whl 下载地址 在页面中查找mod_wsgi下载此版本即可。
- Apache 集成环境有很多,找一个稳定的版本,安装即可。
二、Apache配置
打开 httpd.conf 文件:
- 将上面下载的解压得到 mod_wsgi-py27-VC9.so 放到 Apache/modules 目录下。
- 在LoadModule最后一行,添加 LoadModule wsgi_module modules/mod_wsgi-py27-VC9.so
- 找到httpd-vhosts.conf一行,确认去掉头部的#,如果没有则自己添加。Include etc/extra/httpd-vhosts.conf
打开 httpd-vhosts.conf 文件:
这个文件里面一般都是使用#注释掉了。假设我们的程序使用8000端口:
# Apache 2.4版本
Listen 8000
NameVirtualHost *:8000
<VirtualHost *:8000>
ServerName test.com
ServerAlias www.test.com
ServerAdmin root@test.com
DocumentRoot "F:/web"
ErrorLog "F:/web/error.log"
WSGIScriptAlias / F:/web/run.wsgi
Alias /static F:/web/static
<Directory "F:/web">
#Options +ExecCGI
#AddHandler cgi-script .py
Options -Indexes +FollowSymLinks
Require all granted # ver 2.4
AllowOverride All
WSGIScriptReloading On
</Directory>
</VirtualHost>
其中WSGIScriptAlias / F:/web/run.wsgi
指定了启动脚本为 run.wsgi。
三、wsgi启动程序
# run.wsgi
import sys
sys.path.insert(0, 'F:/web')
from blog import app as application
如此,apache程序会主动加载blog模块中的app作为应用实例。