在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 相关文章推荐
win7 下搭建sublime的python开发环境的配置方法
Jun 18 Python
python通过pil为png图片填充上背景颜色的方法
Mar 17 Python
详解python的webrtc库实现语音端点检测
May 31 Python
Python编写Windows Service服务程序
Jan 04 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
Jan 08 Python
代码分析Python地图坐标转换
Feb 08 Python
python实现数据库跨服务器迁移
Apr 12 Python
python实现自动获取IP并发送到邮箱
Dec 26 Python
Python如何在单元测试中给对象打补丁
Aug 03 Python
python如何爬取动态网站
Sep 09 Python
Python图像处理之膨胀与腐蚀的操作
Feb 07 Python
详解Python小数据池和代码块缓存机制
Apr 07 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中计算程序运行时间的类代码
2012/11/03 PHP
php对大文件进行读取操作的实现代码
2013/01/23 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
JSON相关知识汇总
2015/07/03 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
jQuery实现内容定时切换效果完整实例
2016/04/06 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
js实现本地图片文件拖拽效果
2017/07/18 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
Python strip lstrip rstrip使用方法
2008/09/06 Python
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
python算的上脚本语言吗
2020/06/22 Python
Django多个app urls配置代码实例
2020/11/26 Python
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
工程地质勘察专业大学生求职信
2013/10/13 职场文书
关于礼仪的演讲稿
2014/01/04 职场文书
公司面试感谢信
2014/02/01 职场文书
中学生自我鉴定
2014/02/04 职场文书
英语专业自荐书
2014/06/13 职场文书
班训口号大全
2014/06/18 职场文书
北京导游词
2015/02/12 职场文书
限期整改通知书
2015/04/22 职场文书
职位证明模板
2015/06/23 职场文书
公司酒会主持词
2015/07/02 职场文书
多人股份制合作协议书
2016/03/19 职场文书
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python
pandas中关于apply+lambda的应用
2022/02/28 Python