在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的Tornado框架对子域名和泛域名的支持
May 02 Python
python实现批量改文件名称的方法
May 25 Python
Python合并同一个文件夹下所有PDF文件的方法
Mar 11 Python
Django页面数据的缓存与使用的具体方法
Apr 23 Python
python取余运算符知识点详解
Jun 27 Python
windows中安装Python3.8.0的实现方法
Nov 19 Python
win10下python2和python3共存问题解决方法
Dec 23 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
Python ConfigParser模块的使用示例
Oct 12 Python
python list的index()和find()的实现
Nov 16 Python
python实现马丁策略回测3000只股票的实例代码
Jan 22 Python
使用pycharm运行flask应用程序的详细教程
Jun 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
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
IE浏览器兼容Firefox的JS脚本的代码
2008/10/23 Javascript
js单例模式详解实例
2013/11/21 Javascript
ExtJs中gridpanel分组后组名排序实例代码
2013/12/02 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
AngularJs Javascript MVC 框架
2016/06/20 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
解决vue中修改了数据但视图无法更新的情况
2018/08/27 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
python实现百度关键词排名查询
2014/03/30 Python
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
python目录与文件名操作例子
2016/08/28 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
批量将ppt转换为pdf的Python代码 只要27行!
2018/02/26 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
基于Python爬虫采集天气网实时信息
2020/06/05 Python
怎样比较两个类型为String的字符串
2016/08/17 面试题
高中生毕业自我鉴定
2013/10/10 职场文书
外贸业务员的岗位职责
2013/11/23 职场文书
2014年迎新年联欢会活动策划方案
2014/02/26 职场文书
社区禁毒工作方案
2014/06/02 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
幼儿园辞职书
2015/02/26 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
汽车修理厂管理制度
2015/08/05 职场文书