在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 urlopen()函数 示例分享
Jun 12 Python
NLTK 3.2.4 环境搭建教程
Sep 19 Python
Python supervisor强大的进程管理工具的使用
Apr 24 Python
Python何时应该使用Lambda函数
Jul 02 Python
python3实现斐波那契数列(4种方法)
Jul 15 Python
python3 mmh3安装及使用方法
Oct 09 Python
Django实现图片上传功能步骤解析
Apr 22 Python
在django admin中配置搜索域是一个外键时的处理方法
May 20 Python
python GUI模拟实现计算器
Jun 22 Python
Python 用__new__方法实现单例的操作
Dec 11 Python
Python非单向递归函数如何返回全部结果
Dec 18 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
Jan 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
Jquery遍历节点的方法小集
2014/01/22 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
js简单实现Select互换数据的方法
2015/08/17 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
2016/02/23 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
原生JS实现留言板
2020/03/26 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
vue Element左侧无限级菜单实现
2020/06/10 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
Python 实现一行输入多个值的方法
2018/04/21 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
HTML5中的新元素介绍
2008/10/17 HTML / CSS
几道Java和数据库的面试题
2013/05/30 面试题
公司企业表扬信
2014/01/11 职场文书
小小的船教学反思
2014/02/21 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
公证书格式
2015/01/23 职场文书
小学教师节活动总结
2015/03/20 职场文书
学历证明范文
2015/06/16 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
学校学期工作总结
2015/08/13 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书