6.服务器部署

服务器部署

本章完成以下内容:

  1. 版本需求
  2. Apache配置
  3. 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 文件:

  1. 将上面下载的解压得到 mod_wsgi-py27-VC9.so 放到 Apache/modules 目录下。
  2. 在LoadModule最后一行,添加 LoadModule wsgi_module modules/mod_wsgi-py27-VC9.so
  3. 找到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作为应用实例。

相关文章
相关标签/搜索