欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Windows下Flask+Apache+mod_wsgi部署Flask项目

程序员文章站 2022-07-15 11:57:00
...

想在Windows上部署Flask。参照了网上好多教程,终于配好了。

必要条件:

         1: python环境

         2:apache服务器

         3:mod_wsgi

 下面是我的机子的环境:

python:python3.6.

Windows下Flask+Apache+mod_wsgi部署Flask项目

apache服务器:

       这里有好多坑:我一直部署不成功,感觉跟我下载的版本有关:但是我也不清楚哪里有问题。

1:下载apache:https://www.apachelounge.com/download/VC10/

我是64位 win10系统:

Windows下Flask+Apache+mod_wsgi部署Flask项目

2:解压文件并将解压出的“apache24”放到C盘根目录:

Windows下Flask+Apache+mod_wsgi部署Flask项目

C盘根目录:

Windows下Flask+Apache+mod_wsgi部署Flask项目

如果你不想放在C盘。可以修改配置文件:Apache24\conf\httpd.conf   :修改其中的如图所示处:

Windows下Flask+Apache+mod_wsgi部署Flask项目

3:接下来测试一下服务器,看是否能正常运行:打开cmd。 切换到 Apache24\bin    执行httpd.exe,如果能正常运行就是:

Windows下Flask+Apache+mod_wsgi部署Flask项目

可能会出现如下图的警告:AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using fe80::842:1c5:da2d:ba3a. Set the 'ServerName' directive globally to suppress this message  :这个不影响服务器运行。你可以修改 配置文件:Apache24\conf\httpd.conf   。指明你的ServerName。

Windows下Flask+Apache+mod_wsgi部署Flask项目

Windows下Flask+Apache+mod_wsgi部署Flask项目

4:打开服务器后: 打开浏览器:输入 localhost :可以看到:it work! 你就成功了。

Windows下Flask+Apache+mod_wsgi部署Flask项目

二:接下来把  mod_wsgi 添加到apache 服务器中:

1:下载 mod_wsgi:    地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

这里 也有我疑惑的地方。我下载的 apache 是vc10的版本。但是我在配置时,我下载的 mod_wsgi 是VC14的版本,竟然最后成功了:根据自己的下载响应的版本。并将whl 中 的 mod_wsgi.pyd 提取出来。

Windows下Flask+Apache+mod_wsgi部署Flask项目

Windows下Flask+Apache+mod_wsgi部署Flask项目

2:将提取出来的文件放到  Apache24\modules  中:

Windows下Flask+Apache+mod_wsgi部署Flask项目

3:修改配置文件    Apache24\conf\httpd.conf  :新增:

LoadModule wsgi_module modules/mod_wsgi.pyd

Windows下Flask+Apache+mod_wsgi部署Flask项目

4:到了激动人心的时刻了。重启一下apache服务器,看是否有报错。如果没有 ,说明成功了。

这里 我碰到的问题就是。我使用  mod_wsgi-4.5.24+ap24vc10-cp34-cp34m-win_amd64.whl  提取出来的mod_wsgi  无法启动服务:但是可以使用  mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl   提取出来的尽然可以成功运行服务器。  可能这个要求的python版本比较严格,对CV的版本不是很严格??我也是测试出来的。

三:接下来就是 部署Flask :

1:首先写一个最简单的Flask 应用,并进行发布:这里在跟  apache24  同一目录下也就是  C盘根目录下:创建mydir目录。在目录中写两个文件:hello.py 和myapp.wsgi:

Windows下Flask+Apache+mod_wsgi部署Flask项目

hello.py:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!终于成功了。我擦"

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

myapp.wsgi:

import sys
sys.path.insert(0, 'c:\\mydir')
from hello import app as application

这里的 application  必须是这个。服务器只看这个。

2:修改配置文件:Apache24\conf\httpd.conf   新增几行:

<VirtualHost *:80>
     WSGIScriptAlias /myapp c:\mydir\myapp.wsgi
     <Directory c:\mydir>
         Require all granted
     </Directory>
</VirtualHost>

3:到此。所有配置已 填写完毕。

启动服务器。输入 http://localhost/myapp   即可看到自定义的页面。

Windows下Flask+Apache+mod_wsgi部署Flask项目

.