2019-06-27

2019-06-27  本文已影响0人  yk_1edd

Wampserver64工具下配置Windows+Apache+mod_wsgi+Flask的简要说明

Apache的服务器有很多种类,此处随便找Wampserver64集成的服务器部署一下,主要是记录某些坑,方便复现


2.4.37Apache

启动的配置文件和log都可以在这个地方找到,之后要去文件夹里找到配置文件进行修改

完成后可以开始下载mod_wsgi

打开http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil

找到Mod_wsgi,下载对应位数和python的版本,本人是python3.7,64位windows

可以选择mod_wsgi‑*+ap24vc*‑cp37‑cp37m‑win_amd64.whl版本

按照官方的话说,windows下其实好多命令行就用不了了,需要利用mod_wsgi-express module-config做编译,然后通过结构的输出地址进行配置

On Windows the start-server command is not available. Using pip install mod_wsgi on Windows is only for getting the mod_wsgi module compiled. Once you have it compiled, run:

mod_wsgi-express module-config

Copy the output from that into your Apache configuration file to have it load the mod_wsgi module. Then configure Apache manually to host your specific WSGI application.

先用命令行安装一下下载好的whi文件 pip3 install "mod_wsgi‑*+ap24vc*‑cp37‑cp37m‑win_amd64.whl"

进行安装在安装成功后在python的安装目录的\scripts文件夹下运行或者配置了系统环境可以直接运行(一定要确定自己用的是哪个python环境):

mod_wsgi-expressmodule-config

输出如下三行结果

LoadFile "c:/program files/python37/python37.dll"

LoadModule wsgi_module "c:/program files/python37/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"

WSGIPythonHome "c:/program files/python37"

把这三行内容复制到http.cnf文件下的其他LoadModule命令后面。

把下面两条LoadModule的注释去掉:

LoadModule rewrite_module modules/mod_rewrite.so

LoadModule vhost_alias_module modules/mod_vhost_alias.so

再次启动服务器即可

之后安装flask的过程暂时跳过

在配置完普通flask网站后,在_init_文件下创建工厂模式生成Flask的实例

然后可以创建一个runserver.py的文件用来做为主程序开启服务其的入口

文件内容如下

from 项目根目录名(与flask的app名对应一致最好) import create_app

app=create_app()

if __name__ =='__main__':

if app.debug:

app.run(debug=True)

else:

app.run(host='0.0.0.0')

然后可以创建wsgi.py文件用于给服务器提供程序入口的信息

内容如下

from 项目根目录名.runserver import app as application

此处如果找不到类,需要在项目的位置上做修改,也可以利用

import sys

sys.path.append('')

来确定项目地址

之后需要在配置文件中配置虚拟主机。

打开httpd.conf,输入:

Listen 9001 

<VirtualHost *:9001>       

  ServerAdmin admin@example.com   

  WSGIScriptAlias / C:项目地址\wsgi.py   

  <Directory ‘C:项目地址'>    

    Require all granted    

    Require host ip       

  </Directory>

</VirtualHost>

之后即可通过网页访问,端口为9001

上一篇下一篇

猜你喜欢

热点阅读