在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 04 Python
python下读取公私钥做加解密实例详解
Mar 29 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
Nov 11 Python
Python2.7+pytesser实现简单验证码的识别方法
Dec 29 Python
Python实现自动上京东抢手机
Feb 06 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
Mar 14 Python
获取django框架orm query执行的sql语句实现方法分析
Jun 20 Python
python实现复制大量文件功能
Aug 31 Python
Python从列表推导到zip()函数的5种技巧总结
Oct 23 Python
Django后端发送小程序微信模板消息示例(服务通知)
Dec 17 Python
python保存log日志,实现用log日志画图
Dec 24 Python
Python使用永中文档转换服务
May 06 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 获取客户端的真实ip
2009/11/30 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
php防止SQL注入详解及防范
2013/11/12 PHP
Yii框架实现邮箱激活的方法【数字签名】
2016/10/18 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
仿微博字符限制效果实现代码
2012/04/20 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
简单理解vue中el、template、replace元素
2016/10/27 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
Vue实现简单分页器
2018/12/29 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
2019/05/10 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
vue中touch和click共存的解决方式
2020/07/28 Javascript
python dict remove数组删除(del,pop)
2013/03/24 Python
python中dir函数用法分析
2015/04/17 Python
python提取字典key列表的方法
2015/07/11 Python
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
python logging日志模块的详解
2017/10/29 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
Django框架使用内置方法实现登录功能详解
2019/06/12 Python
python在不同条件下的输入与输出
2020/02/13 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
Python爬虫爬取微信朋友圈
2020/08/06 Python
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
党风廉政承诺书
2014/03/27 职场文书
酒店管理专业毕业生求职自荐信
2014/04/28 职场文书
交通安全主题班会
2015/08/12 职场文书
超市店长竞聘书
2015/09/15 职场文书
作文之亲情600字
2019/09/23 职场文书
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python
MySQL里面的子查询的基本使用
2021/08/02 MySQL
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python