在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爬虫DOTA排行榜爬取实例(分享)
Jun 13 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
Jan 07 Python
浅谈Python的list中的选取范围
Nov 12 Python
浅析Python 引号、注释、字符串
Jul 25 Python
简单了解python变量的作用域
Jul 30 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
Aug 21 Python
分享一个pycharm专业版安装的永久使用方法
Sep 24 Python
python环境下安装opencv库的方法
Mar 05 Python
Django调用百度AI接口实现人脸注册登录代码实例
Apr 23 Python
python中shell执行知识点
May 06 Python
如何用python免费看美剧
Aug 11 Python
搭建pypi私有仓库实现过程详解
Nov 25 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实现图片添加水印功能
2014/02/13 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
取得窗口大小 兼容所有浏览器的js代码
2011/08/09 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
2015/10/09 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
Angular2 父子组件数据通信实例
2017/06/22 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
2020/04/10 Javascript
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
Python之读取TXT文件的方法小结
2018/04/27 Python
Django多数据库的实现过程详解
2019/08/01 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
Python pandas如何向excel添加数据
2020/05/22 Python
Python解析微信dat文件的方法
2020/11/30 Python
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
外语学院毕业生的自我鉴定
2013/11/28 职场文书
最新奶茶店创业计划书
2014/01/25 职场文书
信息学院毕业生自荐信范文
2014/03/04 职场文书
小学教师评语大全
2014/04/23 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
2014年大学团支部工作总结
2014/12/02 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
python实现会员信息管理系统(List)
2022/03/18 Python
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫