Windows下使用Apache和mod_wsgi部署django项目
一、安装Python
确定好所需要的python版本。
二、安装Apache
apache下载地址:http://httpd.apache.org/docs/current/platform/windows.html#down
下载完成后做如下操作
将apache解压后直接复制到你想安装的路径下
1、更改httpd.conf文件,找到如下代码并更改路径
Define SRVROOT "E:/Apache24"
ServerRoot "${SRVROOT}"
找到
Listen 12.34.56.78:80在下面添加监听端口号
Listen 8081
2、以管理员身份运行cmd(右键点击cmd,看到管理员身份运行),进入E:\Apache24\bin目录下,输入命令
> httpd -k install --> 安装
在安装完成之后,输入httpd -k install后就可以启动apache服务了,然后双击bin目录下的ApacheMonitor.exe就可以看到apache的状态了,可以手动控制apache服务,也可以通过cmd使用以下其他命令操作
> httpd -k start --> 启动
> httpd -k stop --> 停止
> httpd -k uninstall --> 卸载
3、apache服务启动之后,在浏览器输入localhost:8081,8081是之前在配置文件里设置的端口号,显示It works!表示访问成功。
三、安装Visual Studio
这一步最好是在下载启动apache之前,如果上步不成功,就先进行这一步,这一步是必须的,如果没有这个工具,后面的mod_wsgi也安不上,会提示没有wheels。假如不确定自己有没有这个工具,也可以直接跳过这一步,等后面报错再回来安装,在下载apache的文件夹可以看到readme文本文档,打开后也可看到如下的要求:
直接打开官方网站Microsoft C++ 生成工具 - Visual Studio直接下载安装
如果安装时报错提示没有Microsoft .NET Framework,根据提示的版本去官网找到并下载,这里我安装的是4.8版本,按需安装:适用于 Windows 的 Microsoft .NET Framework 4.8 脱机安装程序 - Microsoft 支持
安装Visual Studio时注意勾选:左上角的C++桌面开发应用(大概是六个) 并在右下角扩选一个c++ATL
四、安装mod_wsgi
mod_wsgi的安装必须在同一个终端下进行,如果是cmd,则全部在同一个cmd中进行;如果是pycharm的终端,则全部在pycharm的终端下进行。
cmd输入:
set MOD_WSGI_APACHE_ROOTDIR=E:/Apache24
pip install mod_wsgi
安装完成后cmd接着输入
mod_wsgi-express module-config
将输出的3行代码到apache的httpd.conf配置文件中,就写到刚刚的端口号下就行
在项目文件下编写wsgi文件
wsgi文件可以通过mod_wsgi模块把django项目和apache服务连接起来:
import sys
sys.path.insert(0, "E:\pythonProject\flaskProject") # 添加项目路径到python解释器的搜索路径中
from app import app as application # 这里必须是application
添加wsgi文件的路径到apache服务的httpd.conf文件中:
Listen 8081
LoadFile "C:/Users/jackc/AppData/Local/Programs/Python/Python38/python38.dll"
LoadModule wsgi_module "d:/work/frontend/housemarket/housemarketserver/venv/lib/site-packages/mod_wsgi/server/mod_wsgi.cp38-win_amd64.pyd"
WSGIPythonHome "d:/work/frontend/housemarket/housemarketserver/venv"
ServerName 121...** # 这里写入服务器ip地址
<VirtualHost *>
WSGIScriptAlias / E:\pythonProject\flaskProject\test.wsgi
<Directory 'E:\pythonProject\flaskProject'>
Require all granted
Require host ip
访问地址:http://localhost:8081/
五、添加入站规则
点开控制面板-->找到防火墙--> 高级设置-->新建入站规则-->添加端口18081以及8081。
如果是云服务器,还需要在控制台上找到实例的安全组,添加以上入站端口。