Apache2.4+WSGI+Flask在windows服务器上布置运行接口

本文学习人群

先简单说下本文适合的学习人群,我是从0开始学习Python的,之前是写前段页面的。在写这篇文章前,我已经在python上学习了一个月了。所以不是什么快速入门Flask的文章,此文章主要目的就是让你在本地编写的Python+Flask能在一台服务器上运行起来。如果你想知道什么是Apache、WSGI、Flask、Python,请自行谷歌,一搜一大把。好了废话不多说,咱进入正题。


服务器环境

我是在阿里云上购买的一台服务器,由于是出于学习,我就买了最低配的服务器配置,系统是win2012r2的64位系统,一周只要16块钱。所以这篇文章的内容也是一周的时间整理出来的。所以总得来说,没前一个月的准备,也就不会有这一周的效率。

Python安装

如果你已经学习过Python一段时间了的话,这段请跳过。


Python官网
  • 如果是在windows上的服务器,直接打开 WEB 浏览器访问https://www.python.org/downloads/windows/

  • 在下载列表中选择Window平台安装包,包格式为:python-XYZ.msi 文件 , XYZ 为你要安装的版本号。

  • 下载后,双击下载包,进入Python安装向导,安装非常简单,你只需要使用默认的设置一直点击"下一步"直到安装完成即可。

Apache安装

下载

在http://httpd.apache.org/download.cgi#apache24
页面中找到Files for Microsoft Windows点击进入后找到 ApacheHaus,最后你会看到这样的页面

Apache2.4下载页面(此页面经过谷歌浏览器自动翻译过了)

我用的服务器是64位的,所以就下载64位的了,如果服务器选择的是32位就选择上面的那个下载。
下载下来的文件

解压后,进入文件夹,将文件夹中的 Apache24 文件夹复制到服务器C盘的根目录中。接下来就可以开始安装了。

使用命令安装

快捷键win+r,然后输入cmd。
输入 下面的命令到Apache2.4的bin文件夹中
cd c:/Apache24/bin
接着 输入下面命令安装
httpd.exe" -k install -n apache
其中上方命令中的apache是命名

安装完成后结果

这里会有一行Errors的提示,不必慌张,快捷键win+r后输入“services.msc”回车可以看到服务已安装成功,但是还没启动
已安装完成的apache

服务器启动Apache

打开文件夹 「C:\Apache24\bin」,你会看到一个「ApacheMonitor.exe」的程序,双击打开后,会再屏幕右下方看到一片羽毛

ApacheMonitor服务器管理程序

双击这篇羽毛会打开ApacheMonitor服务器管理程序,点击start按钮,羽毛变成这个样式,服务启动成功。
服务启动成功

最后在浏览器中输入http://localhost就会打开这样的一个页面
Apache服务器访问的初始页面

这个页面存在「C:\Apache24\htdocs」文件夹中,也就是说如果只是用Apache2.4的展示静态页面的话,恭喜你,你已经完成了!

有可能会碰到的问题

我想说按照上面的操作能一次性成功的,说明你运气不错,我在做的时候花了整整一天才正正的将服务启动起来了,其中有两个问题是我绕了半天没出来的问题:

  1. 端口80被占用,这个问题好解决,在「C:\Apache24\conf」中找到「httpd.conf」,双击打开后搜索“Listen 80”,将80修改成其他的未被占用端口(如何查看那些端口被占用,自行谷歌这里就不详解了),同时在阿里云安全组上也要做设置,否则外网无法访问,然后启动服务,这时候就要在浏览器中输入“http://localhost:你刚修改的端口号”,即可获得上图。

  2. Apache和tomcat在通一个服务器上运行,这个问题我建议,换个新服务器,单独设置Apache,我也没解决,如果有人解决了,请在下面留言教我下,不胜感谢。

WSGI安装

打开http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil
找到mod_wsgi‑4.5.15+ap24vc14‑cp36‑cp36m‑win_amd64.whl(本人是python3.6,64位windows)

WSGI下载列表

下载后解压,会得到两个文件夹(whl文件解压我是用快压做的)
解压后文件

打开「mod_wsgi」文件夹,找到server下的「mod_wsgi.cp36-win_amd64.pyd」,我们选择复制
pyd文件

将复制文件粘贴到「C:\Apache24\modules」下
复制到modules文件夹中

在这里我将mod_wsgi.cp36-win_amd64.pyd改名为mod_wsgi.pyd,你也可以不改名字
光是将模块放进文件夹,Apache依旧无法识别,我们需要修改它的配置文件
打开「Apache24\conf\httpd.conf」
在其中添加LoadModule wsgi_module modules/mod_wsgi.pyd

添加wsgi

同时,我们还需要把LoadModule vhost_alias_module modules/mod_vhost_alias.so前面的#去掉,意思是让其有效,这个是为之后的虚拟主机启用做准备

现在暂时完成Apache的配置工作

Flask安装

安装

我们开始下载Flask
这里默认你的windows安装了pip模块
我们直接在cmd中输入
pip install flask

安装flask

配置

现在我们创建一个简单的flask项目,在Apache同名目录下创建test文件夹,按照flask的目录规则创建static(静态资源夹),templates(渲染文件夹)和执行代码 init.py,「pycache」文件夹是做什么的,自己用python运行下test.py就知道了。


测试项目

在 init.py 中我们输入以下代码:

from flask import *
app=Flask(__name__)
@app.route('/')
def index():
    return '

Test Success

' if __name__ == '__main__': app.run()

因为只是简单测试,不需要编写完善的html页面,我仅仅返回了‘Test Success’这句话,这个时候我们还要编写wsgi文件,以便于链接Apache和Flask之间的沟通。
在wsgi.py中输入:

import sys
 
sys.path.append('c:/test')
 
from __init__ import app as application

现在进入关键的一步,我们需要在配置文件中配置虚拟主机。
打开httpd.conf,输入:

Listen 80

    WSGIScriptAlias / C:\test\wsgi.py
    
        Require all granted
        Require host ip
    

这样我们的网站基本就搭建好了
访问YouIp:6111可以打开页面(YouIp是你主机的ip地址)


访问

到此,Apache2.4+WSGI+Flask已完成,并运行成功外网可访问了

有可能会碰到的问题

按照上面的步骤做到最后,服务器能正常运行的同学,说明你运气真的不错!如果没运行成功的同学可以尝试下面的方法。
将之前我们下载的文件「mod_wsgi‑4.5.15+ap24vc14‑cp36‑cp36m‑win_amd64.whl」复制黏贴到「Python36\Scripts」这个是Python3.6的一个文件夹,具体在什么位置,那就要看当时安装Python的时候放在什么位置了。

然后使用cmd的cd命令到这个目录中,使用pip命令进行安装
pip install mod_wsgi‑4.5.15+ap24vc14‑cp36‑cp36m‑win_amd64.whl

如果安装失败,请先升级你的pip
python -m pip install -U pip
注意,现在目录一个在 python的 \Scripts 因为这东西安装完,你会发现在这个目录有一个 mod_wsgi-express.exe 的东西哦

安装完成后执行命令
mod_wsgi-express module-config

执行命令后

由于每个人的Python安装的位置不一样,所以这块内容也会不一样,开头的单词LoadModule是不是很熟悉。

打开「C:\Apache24\conf\httpd.conf」将刚才安装WSGI时输入的LoadModule wsgi_module modules/mod_wsgi.pyd,替换成图中你执行命令后得到的内容。再次运行服务器。运行成功。

参考文献:
python基础:http://www.runoob.com/python/python-install.html
wsgi安装:https://www.jianshu.com/p/0aa1c7097976
wsgi排坑:http://www.lazyw.org/pythonflaskapache.html

你可能感兴趣的:(Apache2.4+WSGI+Flask在windows服务器上布置运行接口)