Django工程在Windows系统的服务器上发布,不仅可以通过Window系统自带的IIS来进行(具体使用见Django2.0使用-采用IIS发布项目),还可以通过第三方web服务器软件Apache,具体操作步骤如下:
首先在服务器上安装支持对应工程的python版本,安装完成后,再安装对应的插件包,安装完成后,在对应工程的manage.py 路径下,以管理员方式运行CMD命令
python manage.py runserver
运行完成后,确认对应页面可正常打开。
进入Apache官网http://httpd.apache.org/ ,点击 Download 链接
在Download 页面 点击 “ a number of third party vendors”
根据需要选择对应的版本,要注意是
解压缩相关的Apache包后,进入相应Apache文件夹下的conf文件夹(本例为C:\Users\demopc\Downloads\httpd-2.4.41-lre302-x64-vc14\Apache24\conf) ,打开httpd.conf 文件,
找到类似 Define SRVROOT "/Apache24" 语句, 该语句用于定义Apache的的路径,设置为相关的文件夹位置,本例设置如下
Define SRVROOT "C:\Users\demopc\Downloads\httpd-2.4.41-lre292-x64-vc14-r2\Apache24"
找到类似 Listen 80 的语句,该语句用于定义发布的web站点监听地址及端口,本例设置如下:
Listen 127.0.0.1:8810
找到类似 #ServerName www.example.com:80 的语句,该语句用于定义发布的站点及地址,本例设置如下:
ServerName 127.0.0.1:8810
设置完成后,保存httpd.conf文件
以管理员方式运行打开CMD窗口,运行如下命令
C:\Users\demopc>cd \
C:\>cd C:\Users\demopc\Downloads\httpd-2.4.41-lre302-x64-vc14\Apache24\bin
C:\Users\demopc\Downloads\httpd-2.4.41-lre302-x64-vc14\Apache24\bin>httpd.exe -k
install -n myapache
Installing the 'myapache' service
The 'myapache' service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.
C:\Users\demopc\Downloads\httpd-2.4.41-lre302-x64-vc14\Apache24\bin>net start my
apache
myapache 服务正在启动 .
myapache 服务已经启动成功。
C:\Users\demopc\Downloads\httpd-2.4.41-lre302-x64-vc14\Apache24\bin>
说明:
1)本例中Apache 的路径为C:\Users\demopc\Downloads\httpd-2.4.41-lre302-x64-vc14\Apache24 ,上述dos命令首先是进入到pache的bin下,用于执行httpd命令,当然也可以通过绝对路径执行,或者在环境变量设置path 中包含Apache的路径
2)myapache 为自定义的服务名,可根据需要定义符合Windows服务的名称
3)定义完服务后,然后启动服务
当服务启动后,打开浏览器,输入http://127.0.0.1:8810/ (该地址为Apache定义的地址),当出现Apache的测试页面时表明Apache的环境部署成功
浏览器中输入 http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi ,进入到Mod_wsgi 的下载页面,根据自身所安装的Apache版本与Python版本选择对应的Mod_wsgi 版本,例如本例的Apache 版本为httpd-2.4.41-lre302-x64-vc14 ,Python版本为3.7.4 64位 ,则选择mod_wsgi-4.5.24+ap24vc14-cp37-cp37m-win_amd64.whl 文件
下载完成后,将 文件复制到所安装的Python版本对应的scripts 路径下(本例为D:\python374\Scripts),
以管理员方式运行打开CMD窗口,运行如下命令用来安装并配置Mod_wsgi
C:\Users\demopc>d:
D:\>cd D:\python374\Scripts
D:\python374\Scripts>pip install "mod_wsgi-4.5.24+ap24vc14-cp37-cp37m-win_amd64.
whl"
Processing d:\python374\scripts\mod_wsgi-4.5.24+ap24vc14-cp37-cp37m-win_amd64.wh
l
Installing collected packages: mod-wsgi
Successfully installed mod-wsgi-4.5.24+ap24vc14
D:\python374\Scripts>mod_wsgi-express module-config
LoadFile "d:/python374/python37.dll"
LoadModule wsgi_module "d:/python374/lib/site-packages/mod_wsgi/server/mod_wsgi.
cp37-win_amd64.pyd"
WSGIPythonHome "d:/python374"
再次打开httpd.conf 文件,在文件的结束位置将Mod_wsgi 的配置结果粘贴过来,同时配置WSGIScriptAlias用来设置工程中的wsgi路径、WSGIPythonPath用于设置工程路径,并设置wsgi.py 的访问权限
LoadFile "d:/python374/python37.dll"
LoadModule wsgi_module "d:/python374/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
WSGIPythonHome "d:/python374"
#设置工程中的wsgi路径
WSGIScriptAlias E:\test-python\myStudy\myStudy\wsgi.py
#设置工程路径
WSGIPythonPath E:\test-python\myStudy
#设置wsgi 权限
Require all granted
说明:
本例中Django工程建立在 E:\test-python 文件夹下,工程名称为myStudy,相关的wsgi.py 路径为E:\test-python\myStudy\myStudy
配置完成后,根据Django工程定义的urls,在浏览器中进行测试(本例中Django工程在urls.py 中设置了 mytest 路径),测试结果如下: