在Windows服务器下用Apache和mod_wsgi配置Python应用的教程


Posted in Python onMay 06, 2015

最近开发了一个 Google Analytics 相关的应用,但需要在 Windows 下部署,结合网上的相关经验,最终选择了 apache+mod_wsgi 这样的配置。
修改python应用

   

Note that mod_wsgi requires that the WSGI application entry point be called 'application'. If you want to call it something else then you would need to configure mod_wsgi explicitly to use the other name.

    (via: wiki)

因为 mod_wsgi 默认要求入口名称为 application 所以我们需要对自己的 python web 应用做一些修改。

假设我们使用flask 搭建的应用,而默认的入口名称为 app, 建立一个 wsgi_handler.wsgi

import sys, os
sys.path.insert(0, os.path.dirname(__file__)) 
from application import app as application

下载安装 httpd

应用的入口修改好之后,就需要安装 apache 和 mod_wsgi 了,我使用的是32位的系统,64位系统下载的安装包可能 与32位的不同。

打开页面 http://apache.dataguru.cn//httpd/binaries/win32/,下载 httpd-2.2.22-win32-x86-no_ssl.msi, 下载后运行程序,按提示安装,具体过程这里不详述。
安装并配置 mod_wsgi

目前 Windows 下对 python 支持的最好的应该就是 [mod_wsgi][mw] 了。

下载 https://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-win32-ap22py27-3.3.so

将下载的文件重命名为 mod_wsgi.so 后移动到 apache 的 modules 目录:

在 conf/httpd.conf 中加入如下配置

LoadModule wsgi_module  modules/mod_wsgi.so

配置应用 vhost

在 conf/httpd.conf 中启用 vhosts 配置文件

# Virtual hosts

Include conf/extra/httpd-vhosts.conf

编辑 conf\extra\httpd-vhosts.conf 删除无效的示例代码,并加入应用的配置

NameVirtualHost *:5000

<VirtualHost *:5000>

    ServerName localhost 

    WSGIScriptAlias / E:\Projects\ga-data\wsgi_handler.wsgi

    <Directory E:\Projects\ga-data>

            Order deny,allow

            Allow from all

    </Directory>

</VirtualHost>

其中 E:\Projects\ga-data 替换成应用真实的路径,尽量避免将应用放在中文或者有包含空格的路径中

接下来启动 Apache 并访问 http://localhost:5000 即可。

Python 相关文章推荐
Python 字符串操作方法大全
Mar 11 Python
python3实现暴力穷举博客园密码
Jun 19 Python
Python用threading实现多线程详解
Feb 03 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
Feb 07 Python
python3 拼接字符串的7种方法
Sep 12 Python
Python爬虫实现爬取百度百科词条功能实例
Apr 05 Python
Django model update的多种用法介绍
Mar 28 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
Jul 25 Python
Python解析命令行读取参数之argparse模块
Jul 26 Python
django ListView的使用 ListView中获取url中的参数值方式
Mar 27 Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 Python
用OpenCV进行年龄和性别检测的实现示例
Jan 29 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
May 05 #Python
Python实现的HTTP并发测试完整示例
Apr 23 #Python
安装dbus-python的简要教程
May 05 #Python
使用SAE部署Python运行环境的教程
May 05 #Python
在Python中使用PIL模块对图片进行高斯模糊处理的教程
May 05 #Python
在Python中使用mechanize模块模拟浏览器功能
May 05 #Python
python实现自动更换ip的方法
May 05 #Python
You might like
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
PHP 文件系统详解
2012/09/13 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
html数组字符串拼接的最快方法
2009/09/16 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
2017/03/28 jQuery
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
Python转换HTML到Text纯文本的方法
2015/01/15 Python
使用Python对Excel进行读写操作
2017/03/30 Python
深入理解python中的select模块
2017/04/23 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
django2 快速安装指南分享
2018/01/05 Python
python opencv之SIFT算法示例
2018/02/24 Python
详解python 爬取12306验证码
2019/05/10 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
详解python命令提示符窗口下如何运行python脚本
2020/09/11 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
大专生自我鉴定范文
2013/10/01 职场文书
个人委托书怎么写
2014/04/04 职场文书
师德师风的心得体会
2014/09/02 职场文书
党员个人总结自评
2015/02/14 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL