据前人踏坑经历,拷贝如下:

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踏坑总结的更多相关文章

  1. windows下apache+wsgi+web.py环境搭建

    首先安装好wsgi模块并启用:1.下载地址:我本机是python2.7 http://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi- ...

  2. Windows环境下flask+Apache+mod_wsgi部署及爬坑

    文章目录 安装python Windows 环境使用virtualenv和virtualenvwrapper 安装mod_wsgi 安装nginx 安装Apache 遇到的坑 安装Apache遇到的坑 ...

  3. windows下apache + mod_wsgi + python部署flask接口服务

    windows下apache + mod_wsgi + python部署flask接口服务 用python3安装虚拟环境 为啥要装虚拟环境? 原因1:安装虚拟环境是为了使项目的环境和全局环境隔离开,在 ...

  4. Windows下Apache+mod_python+Django配置

    Windows下Apache+mod_python+Django配置 Apache 首先要安装Apache,我安装的版本是2.2.*: Python python肯定是要安装的,我安装的版本是2.5的 ...

  5. DB数据源之SpringBoot+MyBatis踏坑过程(二)手工配置数据源与加载Mapper.xml扫描

    DB数据源之SpringBoot+MyBatis踏坑过程(二)手工配置数据源与加载Mapper.xml扫描 liuyuhang原创,未经允许进制转载  吐槽之后应该有所改了,该方式可以作为一种过渡方式 ...

  6. DB数据源之SpringBoot+MyBatis踏坑过程(三)手工+半自动注解配置数据源与加载Mapper.xml扫描

    DB数据源之SpringBoot+MyBatis踏坑过程(三)手工+半自动注解配置数据源与加载Mapper.xml扫描 liuyuhang原创,未经允许禁止转载    系列目录连接 DB数据源之Spr ...

  7. DB数据源之SpringBoot+MyBatis踏坑过程(五)手动使用Hikari连接池

    DB数据源之SpringBoot+MyBatis踏坑过程(五)手动使用Hikari连接池 liuyuhang原创,未经允许禁止转载  系列目录连接 DB数据源之SpringBoot+Mybatis踏坑 ...

  8. DB数据源之SpringBoot+MyBatis踏坑过程(七)手动使用Tomcat连接池

    DB数据源之SpringBoot+MyBatis踏坑过程(七)手动使用Tomcat连接池 liuyuhang原创,未经允许禁止转载  系列目录连接 DB数据源之SpringBoot+Mybatis踏坑 ...

  9. dll文件32位64位检测工具以及Windows文件夹SysWow64的坑

    自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...

随机推荐

  1. element-ui(或者说Vue的子组件)绑定的方法中传入自定义参数

    比如el-upload中的 :on-success= fn,其实是给组件el-upload传递一个prop,这样写的话fn只能接受upload组件规定的参数,如果想自己传递父组件中的参数比如b,要写成 ...

  2. elasticsearch(6) 映射和分析

    类似关系型数据库中每个字段都有对应的数据类型,例如nvarchar.int.date等等,elasticsearch也会将文档中的字段映射成对应的数据类型,这一映射可以使ES自动生成的,也是可以由我们 ...

  3. 在jsp里面 当鼠标元素触发onmouseover时,旁边出现一个浮动且跟随鼠标的div ,移开消失

    JSP页面 : <label onmouseover="showLongStrlog(window.event, '<list:seqnum></list:seqnu ...

  4. 第一次 刷 WiFi 模块esp8266 感谢创客阿正

    在正哥指导下 第一次 刷 WiFi 模块  少走了 不少弯路 套件里的 两块 机智云  ==== 我的电脑 需要单独供电 先 对应 接好 ic0要记得接gnd 等待上电时要断电重启 等  用助手 返回 ...

  5. js实现全选反选(开关门)

    话不多说直接看图吧

  6. 设置Ubuntu右侧显示扩展屏幕。。。

    sudo xrandr --output VGA1 --right-of LVDS1 --auto

  7. dom树渲染对性能的影响

    这样写会访问两次dom节点树,一次读取innerHTML,一次重写innerHTML. 当然,加载速度也是很惊人的. 用一个变量把a存起来,只读取和重写innerHTML一次. 可以看到加载时间大幅度 ...

  8. input file文件上传图片显示web接口

    https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader/readAsDataURL  方便简单实用 关注微信小程序

  9. Github远程仓库提交代码步骤

    1.克隆远程仓库     1)当没有设置默认目录时         git clone 仓库地址 本地存放目录 //没有目录的情况    2)当设置了本地存放目录时         先打开路径,命令: ...

  10. ionic3/4 使用NavController 返回两层的方式

    ionic3/4 使用NavController 返回两层的方式:  this.navCtrl.popTo(this.navCtrl.length() - 3);