在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实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 Python
详解tensorflow实现迁移学习实例
Feb 10 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
pandas 将list切分后存入DataFrame中的实例
Jul 03 Python
更新修改后的Python模块方法
Mar 03 Python
python中时间模块的基本使用教程
May 14 Python
django序列化serializers过程解析
Dec 14 Python
python dataframe NaN处理方式
Dec 26 Python
python实现npy格式文件转换为txt文件操作
Jul 01 Python
python如何快速生成时间戳
Jul 21 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
pycharm无法安装cv2模块问题
May 20 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
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
javascript 打印内容方法小结
2009/11/04 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
canvas实现刮刮卡效果
2017/03/14 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
Python自动生产表情包
2017/03/17 Python
Python内置模块turtle绘图详解
2017/12/09 Python
python机器学习理论与实战(五)支持向量机
2018/01/19 Python
django中模板的html自动转意方法
2018/05/27 Python
Django中反向生成models.py的实例讲解
2018/05/30 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
2019/08/09 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
django 扩展user用户字段inlines方式
2020/03/30 Python
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
Roxy美国官网:澳大利亚冲浪、滑雪健身品牌
2016/07/30 全球购物
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
NOTINO英国:在线购买美容和香水
2020/02/25 全球购物
社团成立邀请函
2014/01/08 职场文书
同学聚会老师邀请函
2014/01/28 职场文书
企业消防安全制度
2014/02/02 职场文书
年会主持人开场白台词
2015/05/29 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS
MySQL系列之十二 备份与恢复
2021/07/02 MySQL