部署django : Apache + mod_wsgi + windows
阿新 • • 發佈:2019-01-04
1、環境
3、安裝mod_wsgi
注意,因為apache是32位的,所以mod_wsgi也應該選擇32位的。mod_wsgi的官網在這裡(https://code.google.com/p/modwsgi/)。但是因為沒有windows編譯版本(自己編譯幾乎都是以失敗告終),所幸在這裡可以下載到編譯版本(http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi),我們選擇mod_wsgi-3.4.ap24.win32-py3.3.zip進行下載。
下載過mod_wsgi之後,解壓之後的檔案為“mod_wsgi.so”檔案。我們拷貝它到apache安裝目錄下面的modules資料夾。
光拷貝mod_wsgi.so檔案是不行的,我們還需要修改apache的配置檔案,讓apache知道mod_wsgi的存在。apache的配置檔案在apache安裝目錄下的conf資料夾中的httpd.conf檔案。使用記事本或者任何你喜歡的文字編輯器開啟它,在檔案的最後新增下面的內容並儲存就可以了:
LoadModule wsgi_module modules/mod_wsgi/mod_wsgi.so
3、配置django project
django project的目錄結構如下:
第二步 修改wsgi.py檔案
原以為wsgi.py不需要修改的,可是發現如果不將目錄所在的資料夾新增到系統路徑中,apache還是會報錯,因此在wsgi.py新增下面2行
import sys
sys.path.append('E:/git/python_dev/python_study_case/django/mydjangosite') 其中append的引數就是你的project下的目錄
第三步 配置apache/conf/httpd.conf檔案 開啟httpd.conf檔案,在後面新增下面內容 #新增對映,其中WSGIScriptAlias /是對映到根目錄,如果你需要對映到其他地址,可以改為WSGIScriptAlias /myproject (假設myproject是你想要的地址,那麼你可以通過訪問localhost/myproject來訪問你的網站) WSGIScriptAlias / E:/git/python_dev/python_study_case/django/mydjangosite/mydjangosite/wsgi.py
#指明應用路徑,如果你是使用virtualenv,那麼還需要新增virtualenv的site-packages路徑,中間用";"分隔(linux用冒號:,windows用分號;) WSGIPythonPath E:/git/python_dev/python_study_case/django/mydjangosite;E:/git/python_dev/envs/django/Lib/site-packages #新增wsgi的讀取許可權 <Directory E:/git/python_dev/python_study_case/django/mydjangosite/mydjangosite>
<Files wsgi.py>
Order deny,allow
Require all granted (apache2.3以下版本請註釋掉這行)
</Files>
</Directory> #這裡宣告靜態文靜的對映,這個/static是給django admin的靜態檔案使用的
Alias /static "C:/Python33/Lib/site-packages/django/contrib/admin/static" #這裡是新增資料夾的讀取許可權,注意apache2.3以上的讀寫設定與2.3以下版本有所不同
<Directory "C:/Python33/Lib/site-packages/django/contrib/admin/static/">
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
</Directory> 4、啟動apache
開啟cmd,定位到apache安裝目錄下面的bin目錄,輸入httpd就可以啟動伺服器了,此時你就可以在你的瀏覽器中訪問localhost了
5、引用連結
首先感謝那些為提供這些優秀開源工程的程式設計師們;其次在學習如何部署的過程中,下面幾篇文章對我的幫助很大,在這裡再次說聲謝謝!
http://www.cnblogs.com/liulixiang/p/3543021.html
sys.path.append('E:/git/python_dev/python_study_case/django/mydjangosite') 其中append的引數就是你的project下的目錄
第三步 配置apache/conf/httpd.conf檔案 開啟httpd.conf檔案,在後面新增下面內容 #新增對映,其中WSGIScriptAlias /是對映到根目錄,如果你需要對映到其他地址,可以改為WSGIScriptAlias /myproject (假設myproject是你想要的地址,那麼你可以通過訪問localhost/myproject來訪問你的網站) WSGIScriptAlias / E:/git/python_dev/python_study_case/django/mydjangosite/mydjangosite/wsgi.py
#指明應用路徑,如果你是使用virtualenv,那麼還需要新增virtualenv的site-packages路徑,中間用";"分隔(linux用冒號:,windows用分號;) WSGIPythonPath E:/git/python_dev/python_study_case/django/mydjangosite;E:/git/python_dev/envs/django/Lib/site-packages #新增wsgi的讀取許可權 <Directory E:/git/python_dev/python_study_case/django/mydjangosite/mydjangosite>
<Files wsgi.py>
Order deny,allow
Require all granted (apache2.3以下版本請註釋掉這行)
</Files>
</Directory> #這裡宣告靜態文靜的對映,這個/static是給django admin的靜態檔案使用的
Alias /static "C:/Python33/Lib/site-packages/django/contrib/admin/static" #這裡是新增資料夾的讀取許可權,注意apache2.3以上的讀寫設定與2.3以下版本有所不同
<Directory "C:/Python33/Lib/site-packages/django/contrib/admin/static/">
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
</Directory> 4、啟動apache