Django項目自己就能夠啓動運行,爲何還須要部署到Apache或者Nginx上呢?初學者都會遇到這個問題,咱們來看看官方解釋:It’s intended only for use while developing. (We’re in the business of making Web frameworks, not Web servers.),意思是django的業務是製做Web框架,而不是Web服務器。自帶的web server只是方便開發,並不能直接放到生產環境,有興趣的同窗能夠本身測試二者性能上的差距。 言歸正傳,咱們這裏主要講述如何搭建Apache環境。python
安裝Apacheweb
Apache(win 64)下載:https://www.apachehaus.com/cgi-bin/download.plx#APACHE24VC09express
1.解壓縮,修改Apache24\conf\httpd.conf 文件中的apache路徑和端口:apache
...... Define SRVROOT "E:/Apache24" ServerRoot "${SRVROOT}" ...... #Listen 12.34.56.78:80 Listen 8088 ...... ServerName localhost:8088 ......
2.打開E:\Apache24\bin\httpd.exe,在瀏覽器輸入http://127.0.0.1:8088/ 出現welcome頁面表明成功。django
#添加mod_wsgi.so 模塊 LoadModule wsgi_module modules/mod_wsgi.so
若mod_wsgi解壓後找不到mod_wsgi.so文件(若有跳過此步驟)瀏覽器
運行cmd,進入Scripts目錄執行安裝操做:服務器
pip3 install mod_wsgi-4.5.17+ap24vc10-cp34-cp34m-win_amd64.whl
在Scripts目錄執行:mod_wsgi-express module-config 框架
把三行內容複製到httpd.conf:ide
#添加mod_wsgi.so 模塊 LoadFile "c:/python34/DLLs/python3.dll" LoadModule wsgi_module "c:/python34/lib/site-packages/mod_wsgi/server/mod_wsgi.pyd" WSGIPythonHome "c:/python34"
配置Apache與Django
1.打開Apache配置文件 httpd.conf,在末尾增長一段配置:
#添加mod_wsgi.so 模塊 LoadFile "c:/python34/DLLs/python3.dll" LoadModule wsgi_module "c:/python34/lib/site-packages/mod_wsgi/server/mod_wsgi.pyd" WSGIPythonHome "c:/python34" #指定myweb項目的wsgi.py配置文件路徑 WSGIScriptAlias / D:/mysite/mysite/wsgi.py #指定項目路徑 WSGIPythonPath D:/mysite <Directory D:/mysite/mysite> <Files wsgi.py> Require all granted </Files> </Directory> Alias /static D:/mysite/static <Directory D:/mysite/static> AllowOverride None Options None Require all granted </Directory>
DEBUG = False ALLOWED_HOSTS = ['127.0.0.1','localhost'] #容許訪問的ip。也能夠用'*'表示,表明不受限制
重啓bin\httpd.exe,輸入URL
測試OK
3.將Apache安裝成windows server,就不須要每次打開httpd.exe出現一個小黑框了。
bin目錄下運行cmd命令httpd -k install -n 「服務名」 (不加參數,默認Apache2.4)
運行apache:net start apache2.4
中止apache:net stop apache2.4
刪除apache:sc delete Apache2.4