使用Apache部署Django到Windows Server

浏览: 1971

image.png

安装Python,mod_wsgi,Apache


在好心人已经帮我们编译好的发布网站可以找到需要mod_wsgi的版本。

因为我的系统是64位,Python是35,所以选择了mod_wsgi‑4.5.17+ap24vc14‑cp35‑cp35m‑win_amd64.whl。

amd64就表示适用于64位系统,不带这个就是适用于32位。cp35就是指对应的python版本是3.5。

下载之后,用pip命令安装,可以在python的安装目录下找到

\lib\site-packages\mod_wsgi\server\mod_wsgi.cp35-win_amd64.pyd。

注意到安装的mod_wsgi的是指定ap24vc14,这意味着需要VC14编译的Apache2.4。于是到Apache官网找找到对应的版本,下载解压。找到httpd.conf文件,加入

LoadModule wsgi_module "path\to\python\lib\site-packages\mod_wsgi\server\mod_wsgi.cp35-win_amd64.pyd"

这将使Apache能使用该模块。

Apache部署单个Django项目


将项目文件拷贝到服务器后,需要运行命令python manage.py collectstatic,这将把项目需要的静态文件拷贝到在项目setting.py中设置的STATIC_ROOT的目录中,包括django自带的admin的静态文件。

然后在httpd.conf文件中需要添加以下代码

WSGIPythonHome /path/to/python
WSGIPythonPath /path/to/DjangoProject

WSGIScriptAlias / /path/to/DjangoProject/ProjectName/wsgi.py


Require all granted



Alias /robots.txt /path/to/DjangoProject/static/robots.txt
Alias /favicon.ico /path/to/DjangoProject/static/favicon.ico

Alias /static/ /path/to/DjangoProject/static/

Require all granted


Alias /media/ /path/to/DjangoProject/media/

Require all granted

接下来运行Apache目录下bin中httpd.exe文件,单个项目的部署就结束了。

修改配置运行多站点在同一服务器上


对于多个Django项目部署,我们可以从单个项目出发。

WSGIPythonHome /path/to/python 决定了使用的Python版本。而 WSGIPythonPath /path/to/DjangoProject 决定了Apache部署的Django项目目录。

很容易知道我们只需要增加 WSGIPythonPath 的值,用分号隔开。

如同这样

WSGIPythonPath/path/to/DjangoProject_0;/path/to/DjangoProject_1;

再将原本写在httpd.conf文件的配置删去。在extra/httpd-vhosts.conf文件中添加需要添加的站点。需要在httpd.conf中增加一行(一般来说自带此条代码,只需要把前面的#注释符号去掉就行)

Include conf/extra/httpd-vhosts.conf

以引用该文件。

httpd-vhosts.conf文件内容如下填写,可以按照本模板重复填写多个站点,只要在WSGIPythonPath里增加对应的值即可。


DocumentRoot "path/to/project"
ServerName domain
ServerAlias domain
ErrorLog "logs/domain-error.log"
CustomLog "logs/domain-access.log" common

WSGIScriptAlias / path/to/project/projectName/wsgi.py


Require all granted



Alias /robots.txt /path/to/DjangoProject/static/robots.txt
Alias /favicon.ico /path/to/DjangoProject/static/favicon.ico

Alias /static/ /path/to/DjangoProject/static/

Require all granted


Alias /media/ /path/to/DjangoProject/media/

Require all granted

推荐 0
本文由 杨学光 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册