Apache如何部署django項(xiàng)目
2017-05-223lian17 的分享
在此之前,我們一直使用django的manage.py 的runserver 命令來(lái)運(yùn)行django應(yīng)用,但這只是我們的開(kāi)發(fā)環(huán)境,當(dāng)項(xiàng)目真正部署上線(xiàn)的時(shí)候這做就不可行了,必須將我們的項(xiàng)目部署到特定的web服務(wù)器上。
安裝apache
Apache是非常有名的web服務(wù)器軟件,如果想讓我們web項(xiàng)目運(yùn)行幾乎離不開(kāi)它。
Apache官方網(wǎng)站:
根據(jù)自己的環(huán)境,選擇相應(yīng)的版本進(jìn)行下載。apache 官網(wǎng)沒(méi)有windows 64位版本,可以通過(guò)下面的鏈接進(jìn)行下載:win7 64位:
下載安裝完成,apahche的目錄結(jié)構(gòu)如下:

修改conf/httpd.conf文件:
……
ServerRoot "D:/pydj/Apache24"
……
Listen 127.0.0.1:8089 #修改端口號(hào)
……
ServerName :8089
……
DocumentRoot "D:/pydj/Apache24/htdocs"
……
ScriptAlias /cgi-bin/ "D:/pydj/Apache24/cgi-bin/"
……
AllowOverride None
Options None
Require all granted
……
主要就是路徑和端口號(hào)的修改,如果你在啟動(dòng)apache的httpd.exe程序時(shí)一閃就沒(méi)了,請(qǐng)檢查這些配置。
啟動(dòng)bin/httpd.exe程序
通過(guò)瀏覽器訪(fǎng)問(wèn)::8089/

現(xiàn)在可以說(shuō)明apache工作是正常的了。
安裝mod_wsgi
The aim of mod_wsgi is to implement a simple to use Apache module which can host any Python application which supports the Python WSGI interface.
The module would be suitable for use in hosting high performance production web sites, as well as your average self managed personal sites running on web hosting services.
(mod_wsgi的目的是實(shí)現(xiàn)一個(gè)簡(jiǎn)單的使用Apache模塊可以舉辦任何Python應(yīng)用程序支持Python的WSGI接口。該模塊將適用于主機(jī)的高性能生產(chǎn)的網(wǎng)站,以及一般的自我管理個(gè)人網(wǎng)站的網(wǎng)頁(yè)寄存服務(wù)運(yùn)行。)直接google翻譯的,湊合的大概理解是干啥用的。
mod_wsgi網(wǎng)站:
下載地址:~gohlke/pythonlibs/#mod_wsgi
如win7 64位、python 2.7.6、apache(httpd-2.4.10)對(duì)應(yīng)版本為:mod_wsgi-3.5.ap24.win-amd64-py2.7.zip
解壓之后將得到一個(gè)mod_wsgi.so 文件,將其拷貝到Apache24\modules\ 目錄下。
配置apache和django項(xiàng)目
因?yàn)槟愕哪夸浺欢ê臀业囊粯樱裕以購(gòu)?qiáng)調(diào)一下我的目錄:
apache 存放目錄:D:\pydj\Apache24
django項(xiàng)目目錄:D:\pydj\myweb
再次打apache的配制文件httpd.conf:
……
#添加mod_wsgi.so 模塊
LoadModule wsgi_module modules/mod_wsgi.so
#指定myweb項(xiàng)目的wsgi.py配置文件路徑
WSGIScriptAlias / D:/pydj/myweb/myweb/wsgi.py
#指定項(xiàng)目路徑
WSGIPythonPath D:/pydj/myweb <Directory D:/pydj/myweb/myweb> <Files wsgi.py> Require all granted </Files> </Directory>上面的路徑,請(qǐng)根據(jù)自己的實(shí)際情況進(jìn)行修改。
下面配置myweb/wsgi.py文件:
……
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myweb.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
在我們生成djnago項(xiàng)目時(shí)這些信息已經(jīng)自動(dòng)生成,其實(shí)我們不用對(duì)其做任何修改。
打開(kāi)settings.py文件添加:
……
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
再次啟動(dòng)Apache24/bin/httpd.exe程序
通過(guò)瀏覽器訪(fǎng)問(wèn)::8089/
