1. 程式人生 > >Apache 2.4+Django 1.11配置

Apache 2.4+Django 1.11配置

最近在寫一個django網站,差不多開發好了,打算掛在我的win伺服器上。 開發除錯階段沒什麼講究,直接給個

python settings.py runserver 0.0.0.0:80
就這麼讓他跑起來的,但到了生產環境可不能這麼幹啊! 萬一不小心關掉cmd控制檯的話 整個網站就停止運行了,這太坑了! 所以想把網站掛在一個成熟的web 伺服器上,首先想到的是nginx,不過看了django+nginx的很多帖子後,說實話真心沒看懂,所以打算看看能不能掛在apache httpd,答案是肯定的! 那就開始部署吧。

首先說明一下: 其實django程式如何部署在apache伺服器這個題材的帖子可以搜出n個,不過你可能會遇到跟我一樣的問題,那就是別人寫的 apache 2.2環境,或者django1.7環境,或者python2.7的環境根本不適合你下載的最新的環境! 人家說的東西,你找不到,配置方法也不一樣,所以我才冷飯再炒一邊。

環境: win10 64位,python 3.6 64位 , apache 2.4.27 64位

第一步: apache環境配置,如果你已經配置好apache的話直接看第二步,如果你還沒配置好的話,請先看我的上一個帖子,把apache配置好再回來。

第二步:下載部署mod_wsgi ,這到底是什麼東西我沒追究太多,反正只知道不弄這東西的話,你的django網站無法在apache上跑起來。

首先到http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi 這個網站,下載適合自己環境的包,我下載了mod_wsgi‑4.5.17+ap24vc14‑cp36‑cp36m‑win_amd64.whl

。因為我環境就是python3.6,win64環境。


然後網上有很多如何部署的帖子,但都是老方法,他們說的mod_wsgi.so這個檔案,在我下載的版本里根本不存在!

如果你也找不到那個so檔案,那就跟著我配置吧!

我們之所以找不到那個檔案,是因為現在配置方法改變了,我們要用新方法來部署。

如果你把剛才的whl檔案下好的話,用cmd控制檯把它安裝到python中,比如我的whl檔案在d盤根目錄的話,我會這樣安裝

pip install mod_wsgi‑4.5.17+ap24vc14‑cp36‑cp36m‑win_amd64.whl
安裝好了後,這個包進入到 你的電腦python環境中,如我的電腦的路徑是 C:\Program Files\Python36\Lib\site-packages\mod_wsgi

第三步,配置apache

開啟apache的httpd.conf檔案(在conf目錄下),然後依次配置下面幾行

LoadFile "C:/Program Files/Python36/python36.dll"   # 你電腦python根目錄中的python36.dll檔案
LoadModule wsgi_module "C:/Program Files/Python36/Lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"   #你只要把python根目錄部分改成你自己的就好了
WSGIPythonHome "C:/Program Files/Python36"  # 你電腦python根目錄

WSGIScriptAlias / D:/Server/Apache24/htdocs/djangoshop/DjangoShop/wsgi.py #這是我django專案的wsgi.py檔案,你把專案路徑改成你自己的就行
WSGIPythonPath D:/Server/Apache24/htdocs/djangoshop    #我的django專案根目錄位置
<Directory D:/Server/Apache24/htdocs/djangoshop/DjangoShop>    #我的django專案根目錄位置
    <Files wsgi.py>    
        Require all granted 
    </Files>
</Directory>
Alias /static/ D:/Server/Apache24/htdocs/djangoshop/static/   #這是django static目錄的定義,你的網站css js 和圖片之類的靜態檔案都在這個目錄下
<Directory D:/Server/Apache24/htdocs/djangoshop/static>   #你把django專案路徑改成你自己的
    Require all granted    
</Directory>  
這樣就配置好了apache了。

第四步,配置django專案

在wsgi.py檔案中要有這四行

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DjangoShop.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
其中djangoshop是我的專案名稱,你要改成你自己的

然後進入settings.py 加上

ALLOWED_HOSTS = ['127.0.0.1:80']
也就是讓apache訪問你的網站

差不多就這樣了,你輸入localhost就可以看到你可愛的網站了。