在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 相关文章推荐
windows下python模拟鼠标点击和键盘输示例
Feb 28 Python
Python的dict字典结构操作方法学习笔记
May 07 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
Centos 升级到python3后pip 无法使用的解决方法
Jun 12 Python
Django 多环境配置详解
May 14 Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 Python
django-rest-swagger对API接口注释的方法
Aug 29 Python
python set集合使用方法解析
Nov 05 Python
Flask和pyecharts实现动态数据可视化
Feb 26 Python
Python利用Xpath选择器爬取京东网商品信息
Jun 01 Python
Python爬虫之爬取淘女郎照片示例详解
Jul 28 Python
如何通过一篇文章了解Python中的生成器
Apr 02 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
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
JQuery动态创建DOM、表单元素的实现代码
2011/08/09 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
angularjs实现下拉列表的选中事件示例
2017/03/03 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
JavaScript 巧学巧用
2017/05/23 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
jQuery实现遍历XML节点和属性的方法示例
2018/04/29 jQuery
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
JavaScript日期工具类DateUtils定义与用法示例
2018/09/03 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
2019/05/29 Javascript
小程序实现短信登录倒计时
2019/07/12 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
在Python中使用next()方法操作文件的教程
2015/05/24 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
python 堆和优先队列的使用详解
2019/03/05 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
Pytorch之view及view_as使用详解
2019/12/31 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
光盘行动倡议书
2014/02/02 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
刑事代理授权委托书
2014/09/17 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
推销搭讪开场白
2015/05/28 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
基于Nginx实现限制某IP短时间访问次数
2021/03/31 Servers
python Django框架快速入门教程(后台管理)
2021/07/21 Python
java executor包参数处理功能 
2022/02/15 Java/Android