Windows Server 2012 R2利用Apache、mod_wsgi部署Python中的django项目
一、配置环境
服务器系统:Windows Server 2012 R2
Python:Python 3.7.2
django: 2.1.7
Apache:
mod_wsgi:mod_wsgi‑4.6.5+ap24vc15‑cp37‑cp37m‑win_amd64.whl
二、软件安装
1. 安装Python
参考文章:安装Python
2. 安装django
3. 安装Apache
参考文章:windows下Apache安装
4. 安装mod_wsgi
4.1 下载
下载网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
选择适合的版本,本次使用的是 mod_wsgi‑4.6.5+ap24vc15‑cp37‑cp37m‑win_amd64.whl
这个命名代表的是
1.ap24代表的是apache24的版本(解压完apache你看路径就知道版本了)
2.vc15上面第三步所选的apache的vc为15,这里选择一样的vc
3.cp37和cp37m,我也不知道哪个代表的是python环境为3.7,反正两个数字全都是一样的
4.2 把下载的mod_wsgi‑4.6.5+ap24vc15‑cp37‑cp37m‑win_amd64.whl文件,放到python目录的Scripts文件夹下,如图,默认位置为:C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts
4.3 进入对应的目录后,运行 pip install 对应的.whl文件目录,即
pip install C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts\mod_wsgi-4.6.5+ap24vc15-cp37-cp37m-win_amd64.whl
4.4 安装成功后运行如下命令
mod_wsgi-express module-config
得到这三个路径后,先别急着关闭命令行,后续需要用到。
三、部署django
1. 配置Apache,打开 C:\Apache24\conf 目录,编辑 httpd.conf 文件
确定apache目录与实际目录一致
Define SRVROOT "c:/Apache24"
添加服务器地址,然后将之前的三个路径复制到文末,再配置项目路径(我的项目名称是testDjiango,放在C:\Code目录下,大家注意更改为自己的项目路径),具体如下所示:
# 添加服务器地址
ServerName localhost:80
LoadFile "c:\users\administrator\appdata\local\programs\python\python37\python37.dll"
LoadModule wsgi_module "c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages\mod_wsgi\server\mod_wsgi.cp37-win_amd64.pyd"
WSGIPythonHome "c:\users\administrator\appdata\local\programs\python\python37"
#Django项目中wsgi.py的路径
WSGIScriptAlias / C:\Code\testDjiango\testDjiango\wsgi.py
#第一个“/”表示访问时的url中输入名称为空,那么输入:127.0.0.1:80/ 即可访问,
#也可以自定义,比如:/test,那么访问时url为:127.0.0.1:80/test
#注意:不管哪种方式,url后面都还需加上项目本身设置的访问路径
#Django项目的路径
WSGIPythonPath C:\Code\testDjiango
#配置wsgi.py的访问权限
<Directory C:\Code\testDjiango\testDjiango>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
注意:路径最好是去实际文件那边复制,路径分隔符用“\”,而不是“/”(如果是直接从命令行复制的路径则需要更改),盘符可以改为大写,不过我这里用的小写也没出问题。
2. 打开云服务器浏览器输入127.0.0.1:80/hello,或者本机电脑浏览器输入:云服务器外网IP:80/hello (其中hello是testDjiango项目本身设置的url访问路径),显示如下,成功部署!
3. 如果需要让外网能访问到该项目,那么需要修改python项目的 settings.py 文件(与 上面的 wsgi.py 在同一个目录,以我的这个项目为例即:C:\Code\testDjiango\testDjiango 目录下)
在settings.py文件中的ALLOWED_HOSTS字段,加个星号
ALLOWED_HOSTS = ["*"]