在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发送邮件附件以定时备份MySQL的教程
Apr 25 Python
windows下Python实现将pdf文件转化为png格式图片的方法
Jul 21 Python
Php多进程实现代码
May 07 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
Jun 14 Python
python+opencv实现高斯平滑滤波
Jul 21 Python
Pycharm 实现下一个文件引用另外一个文件的方法
Jan 17 Python
django连接oracle时setting 配置方法
Aug 29 Python
Python3实现二叉树的最大深度
Sep 30 Python
Django与pyecharts结合的实例代码
May 13 Python
Python实现画图软件功能方法详解
Jul 28 Python
基于python调用jenkins-cli实现快速发布
Aug 14 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
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
js日历功能对象
2012/01/12 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
javascript鼠标滑动评分控件完整实例
2015/05/13 Javascript
Vue.js开发环境搭建
2016/11/10 Javascript
微信小程序 页面之间传参实例详解
2017/01/13 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
2017/11/27 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
npm ci命令的基本使用方法
2020/09/20 Javascript
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
使用python实现链表操作
2018/01/26 Python
python实现按日期归档文件
2021/01/30 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
交通专业个人自荐信格式
2013/09/23 职场文书
商务英语专业自荐信
2013/10/14 职场文书
中专毕业生的自我鉴定
2013/12/01 职场文书
简短证婚人证婚词
2014/01/09 职场文书
兽医医药专业求职信
2014/07/27 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
如何签定毕业生就业协议书
2014/09/28 职场文书
2014年检验员工作总结
2014/11/19 职场文书
春节慰问信范文
2015/02/15 职场文书
怎样写观后感
2015/06/19 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
高中运动会广播稿
2015/08/19 职场文书
导游词之临安白水涧
2019/11/05 职场文书
Javascript设计模式之原型模式详细
2021/10/05 Javascript
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript