Windows + Flask + Apache + wsgi踏坑总结
据前人踏坑经历,拷贝如下: 1. Apache,mod_wsgi和Python都必须用相同版本的C/C++编译器生成,要么都是32位的,要么都是64位的,不能混用。
2. Apache和mod_wsgi 也必须选择相同位数相同VC编译版本(比如:都是x64 VC14编译)
本人以x64 VC14编译版本为例,
Windows版本: Window Server 2008 R2 x64
Python: 3.7.2 x64
1. 首先安装Python环境,安装python3.7.2 x64版本
下载地址:https://www.python.org/ftp/python/3.7.2/python-3.7.2-amd64.exe
验证一下,是否安装成功:
2. 安装Flask
3. 安装Apache
打开网页: https://httpd.apache.org
这里一定一定要选对版本,我这里选的x64, vc14版本
下载后,将文件解压出来,如图所示:
命令行启动httpd.exe,并验证是否启动成功,显示"IT WORKS", 没有问题
4. 安装mod_wsgi
在https://www.lfd.uci.edu/~gohlke/pythonlibs/ 页面搜索 mod_wsgi, 并且一定要选对版本,我的版本是vc14+py37+x64版本
将下载的文件后缀改为zip,解压出来,拷贝mod_wsgi.cp37-win_amd64.pyd 文件放到C:\Apache24\modules 目录,并改名为mod_wsgi.pyd
5. 修改配置
搜索SRVROOT 并修改apache的路径, apache配置文件:C:\Apache24\conf\httpd.conf
加载mod_wsgi模块,增加行 LoadModule wsgi_module modules/mod_wsgi.pyd
创建web app
main.py 代码:
from flask import Flask app = Flask(__name__) @app.route('/')
def hello_world():
return 'Hello World!' @app.route("/index/")
def foo():
return "index page" @app.route("/login/")
def login():
return "login page" if __name__ == '__main__':
app.run()
test.wsgi代码:
import sys sys.path.insert(0, "C:/web") from main import app application = app
修改httpd.conf配置,末尾增加内容:
<VirtualHost *:8090 >
ServerAdmin "0.0.0.0"
DocumentRoot "c:/web" <Directory "c:/web">
Require all granted
Require host ip
Allow from all
</Directory>
WSGIScriptAlias / c:/web/test.wsgi
</VirtualHost>
搜索Listen,监听端口改为8090
再次启动httpd,可能会出现以下错误:
以上错误是由于httpd.conf中某些模块没有启用,启用以下模块即可:
LoadModule access_compat_module modules/mod_access_compat.so #基于主机的组授权(名称或IP地址) httpd 2.x兼容的模块,
LoadModule proxy_module modules/mod_proxy.so #apache的代理模块
LoadModule proxy_http_module modules/mod_proxy_http.so #代理http和https请求
LoadModule vhost_alias_module modules/mod_vhost_alias.so #虚拟主机动态配置
LoadModule authz_host_module modules/mod_authz_host.so #基于主机的组授权
Include conf/extra/httpd-vhosts.conf#启用虚拟主机配置
如果上述步骤都没有问题,测试一下结果:
公网访问试试:
OK,至此,配置算是圆满成功!
本文发布于:2019-03-04 21:55:55
Windows + Flask + Apache + wsgi踏坑总结的更多相关文章
- windows下apache+wsgi+web.py环境搭建
首先安装好wsgi模块并启用:1.下载地址:我本机是python2.7 http://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi- ...
- Windows环境下flask+Apache+mod_wsgi部署及爬坑
文章目录 安装python Windows 环境使用virtualenv和virtualenvwrapper 安装mod_wsgi 安装nginx 安装Apache 遇到的坑 安装Apache遇到的坑 ...
- windows下apache + mod_wsgi + python部署flask接口服务
windows下apache + mod_wsgi + python部署flask接口服务 用python3安装虚拟环境 为啥要装虚拟环境? 原因1:安装虚拟环境是为了使项目的环境和全局环境隔离开,在 ...
- Windows下Apache+mod_python+Django配置
Windows下Apache+mod_python+Django配置 Apache 首先要安装Apache,我安装的版本是2.2.*: Python python肯定是要安装的,我安装的版本是2.5的 ...
- DB数据源之SpringBoot+MyBatis踏坑过程(二)手工配置数据源与加载Mapper.xml扫描
DB数据源之SpringBoot+MyBatis踏坑过程(二)手工配置数据源与加载Mapper.xml扫描 liuyuhang原创,未经允许进制转载 吐槽之后应该有所改了,该方式可以作为一种过渡方式 ...
- DB数据源之SpringBoot+MyBatis踏坑过程(三)手工+半自动注解配置数据源与加载Mapper.xml扫描
DB数据源之SpringBoot+MyBatis踏坑过程(三)手工+半自动注解配置数据源与加载Mapper.xml扫描 liuyuhang原创,未经允许禁止转载 系列目录连接 DB数据源之Spr ...
- DB数据源之SpringBoot+MyBatis踏坑过程(五)手动使用Hikari连接池
DB数据源之SpringBoot+MyBatis踏坑过程(五)手动使用Hikari连接池 liuyuhang原创,未经允许禁止转载 系列目录连接 DB数据源之SpringBoot+Mybatis踏坑 ...
- DB数据源之SpringBoot+MyBatis踏坑过程(七)手动使用Tomcat连接池
DB数据源之SpringBoot+MyBatis踏坑过程(七)手动使用Tomcat连接池 liuyuhang原创,未经允许禁止转载 系列目录连接 DB数据源之SpringBoot+Mybatis踏坑 ...
- dll文件32位64位检测工具以及Windows文件夹SysWow64的坑
自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...
随机推荐
- SpringMVC详细学习笔记
Spring MVC 1 spring MVC简介: Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构 ...
- reinterpret_cast
reinterpret_cast强制类型转换符 用法: new_type a = reinterpret_cast <new_type> (value) 将value的值转成new_typ ...
- visual c++如何显示行号
工具 -> 选项 -> 文本编辑器
- Groovy学习笔记-陷阱
1.def和in是关键字 2.==映射到了equals() 中,如果有Comparable接口实现,则优先compareTo str1 = 'hello' str2 = str1 str3 = new ...
- Selenium-java测试环境搭建
1.1背景 Selenium也是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Firefox.Mozilla ...
- JAVA中String类型的字符替换问题
如果仅仅替换某个字符,使用replaceall("xx","")即可,其中.的替换要使用\\.否则会替换除换行符外的所有字符. 如果要替换所有特殊字符(即非字母 ...
- ES6箭头函数Arrow Function
果然,隔了很长时间都没有来博客园上逛了...... 前一段时间一直在忙我们参加的一个比赛,转眼已经好久没有来逛过博客园了,果然还是很难坚持的...... 今天总算还是想起来要过来冒个泡,强行刷一波存在 ...
- CnPack组件包的安装与使用
如果你用过Eclipse.NotePad++等等工具,再试试用刚装好Delphi写代码会很痛苦,你是否觉得Delphi的代码编辑器很不友好? 那就去了解一下CnPack吧,给你的Delphi装上它绝对 ...
- 小程序视频播放组件video
最近在做一个视频播放的功能,要求如下: 1.实现视频的全屏播放: 2.实现视频相关信息的展示: 3.实现视频滑动上下切换效果: 肯定选择用原生组件video了,真是不用不知道,一用都是坑: 首先,组件 ...
- 机器视觉:MobileNet 和 ShuffleNet
虽然很多CNN模型在图像识别领域取得了巨大的成功,但是一个越来越突出的问题就是模型的复杂度太高,无法在手机端使用,为了能在手机端将CNN模型跑起来,并且能取得不错的效果,有很多研究人员做了很多有意义的 ...