在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 即可。
猜你喜欢
- 一 Process对象的join方法在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情
- 前言最近发现有些东西长时间不用就要忘了,坚持每天复习总结一个小知识点吧~异常是什么呢?就是在代码执行过程中非预期的执行结果,随着代码越来越复
- 常见的图片加密方法包括加密算法、水印、隐藏、压缩等。下面简要介绍一些常见的图片加密方法:加密算法加密算法是一种基于数学运算的加密方式,可对图
- 阅读上一节:无序列表信息有时候是无序归纳的,有的却有着明确的顺序,在上一篇也提到了。那么简单的来想一下身边有哪些事物是有先后顺序的:操作步骤
- 一、上传表单的HTML代码 <form action="UpLoad.php" method="post
- 本文主要讲述的是Python中的模块的概念,具体如下。模块是python组织代码的基本方式:python的脚本都是用扩展名为py的文本文件保
- Flask数据模型和连接数据库flask是基于MTV的结构,其中M指的就是模型,即数据模型,在项目中对应的是数据库。flask与数据库建立联
- asp之家注:学习asp,无论是做企业网站还是做个人网站一般都需要用到IP地址。如留言要记录留言者IP,用户登录也经常记录登录的IP,还有站
- 在CMD控制台进入Jupyter notebook之前,先激活安装了该模块的配置环境,再启动jupyter notebook,问题完美解决。
- 效果展示打地鼠小游戏简介打地鼠的游戏规则相信大家都知道,这里就不多介绍了,反正就是不停地拿锤子打洞里钻出来的地鼠呗~首先,让我们确定一下游戏
- 动态规划是一种用来解决定义了一个状态空间的问题的算法策略。这些问题可分解为新的子问题,子问题有自己的参数。为了解决它们,我们必须搜索这个状态
- 本文实例讲述了Python基于csv模块实现读取与写入csv数据的方法。分享给大家供大家参考,具体如下:通过csv模块可以轻松读取格式为cs
- 代码如下:create table T_NEWS ( ID NUMBER, N_TYPE VARCHAR2(20), N_TIT
- PDOStatement::errorInfoPDOStatement::errorInfo — 获取跟上一次语句句柄操作相关的扩展错误信息
- python 使用get_argument获取url query参数ornado的每个请求处理程序,我们叫做handler,handler里
- 现在主流的cms或者blog等系统中,都内置的有插件系统,但是层层深入、剖析实现的方式,其实都是最简单的钩子的复杂化的实现。前言钩子是插件执
- 突然想到了之前一直没留意的for循环中开goroutine的执行顺序问题,就找了段代码试了试,试了几次后发现几个有意思的地方,我暂时没有精力
- (一)CSV格式文件1.说明CSV是一种以逗号分隔数值的文件类型,在数据库或电子表格中,常见的导入导出文件格式就是CSV格式,CSV格式存储
- 在了解装饰器之前,我们需要知道什么闭包是什么鬼!闭包:在一个函数内定义了一个函数f,并且这个函数f引用外部变量,在把这个函数f当做返回值返回
- python读取和保存图片5种方法对比python中对象之间的赋值是按引用传递的,如果需要拷贝对象,需要用到标准库中的copy模块方法一:利