在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
作者:goldensun 发布时间:2021-10-28 22:36:17
最近开发了一个 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 即可。


猜你喜欢
- 一、一元操作符1.delete操作符delete 操作符用于删除对象的某个属性;如果没有指向这个属性的引用,那它最终会被释放语法:delet
- 本文实例讲述了Python使用sorted排序的方法。分享给大家供大家参考,具体如下:# 例1. 按照元素出现的次数来排序seq = [2,
- 如下所示:l = [1, 2, 3, 5]l_one = [2, 8, 6, 10]print set(l) & set(l_one
- 先说点题外话,我一开始想使用Sina Weibo API来获取微博内容,但后来发现新浪微博的API限制实在太多,大家感受一下:只能获取当前授
- 首先要声明的是1,游标的方法会很慢在mysql中,在oracle数据库中还可以,除非没有别的方法,一般不建议在mysql中使用游标,2,不建
- 1. 什么是Matplotlibmatplotlib是专门用于开发2D图表(包括3D图表),以渐进、交互式方式实现数据可视化。使用pytho
- 字体的处理在网页设计中无论怎么强调也不为过, 毕竟网页使用来传递信息的, 而最经典最直接的信息传递方式就是文字,&nbs
- 关于 HTTP 协议HTTP(即超文本传输协议)是现代网络中最常见和常用的协议之一,设计它的目的是保证客户机和服务器之间的通信。HTTP 的
- excel转置分为两种情况,一个是较为简单的只需要行转列,列转行最简单的转置,利用pandas里面的转置**.T**函数代码如下:impor
- 一、hook在PyTorch中,提供了一个专用的接口使得网络在前向传播过程中能够获取到特征图,这个接口的名称非常形象,叫做hook。可以想象
- 对dataframe绘图并保存:ax = df.plot() fig = ax.get_figure()fig.savefig('f
- 使用.net2005自带的SQL-Express连接不上。解决方法:1.网络防火墙阻止数据库连接;2.默认SQL-Express没有启动Sa
- 把下面SQL里的SELECT单独执行,没有问题,但是用来CREATE VIEW 就报错了.CREATE OR REPLA
- 大家好,并发编程 今天开始进入第二篇。今天的内容会比较基础,主要是为了让新手也能无障碍地阅读,所以还是要再巩固下基础。学完了基础,你们也就能
- 1.效果图:2.代码# 作用域 是 对象生效的区域(对象能被使用的区域)# 全局作用域在任意位置可生效# 局部作用域在函数内生效c = 20
- 在python中,通过如下两个模块可以实现邮件的自动化操作smtplibemailsmtplib模块是对SMTP协议的封装,用于发送邮件;e
- 本文实例为大家分享了python多线程分块读取文件的具体代码,供大家参考,具体内容如下# _*_coding:utf-8_*_import
- SQLite 的 AUTOINCREMENT 是一个关键字,用于表中的字段值自动递增。我们可以在创建表时在特定的列名称上使用 AUTOINC
- <SCRIPT language=JavaScript> <!-- var layerTo
- 经常在各处牛人的代码中看到许多简写的条件表达语句,看了一些介绍这方面的文章,觉得3 ways 2 say if这篇文章(http://www