1. 程式人生 > >在Windows下使用Python3、Django和Apache部署網站

在Windows下使用Python3、Django和Apache部署網站

Windows下進行與Python相關的開發實在是有諸多坑。但另一方面,到了Win10,Windows的易用性和穩定性已經達到了一個相當的高度,再加上豐富的軟體生態。對我來說,Windows現在就是一種“看不慣又幹不掉”的狀態。

曾經用Wamp+WordPress在Windows下部署過部落格網站,沒想到這次用Django,感覺完全不一樣了。或許Django畢竟不是WordPress那種模板式部落格應用,而只是一個框架吧。搭建過程種出現了無數的坑。雖然總結起來步驟倒也並不是很多。但實在是相當麻煩。現在記錄如下。

一:環境準備。

首先,按照官方文件的說法,如果你想保證你的網站程式穩定執行,最好在環境上做到以下幾點:

0、需要給Apache裝上mod_wsgi。這是一個用來在Apache上支援Python的模組。這個檔案在Windows下編譯非常麻煩,不過我們可以在Github上下載已編譯完成的檔案。下載地址:mod_wsgi_4.4.12

1、需要準備的所有東西——Python、Apache、mod_wsgi等等,要麼就全用32位,要麼就全用64位。兩種不能混用。

2、安裝Python時要為所有使用者安裝,不能只為你自己安裝

3、已編譯完成的mod_wsgi在編譯時使用的Python版本、Microsoft C/C++ Compiler的版本和你現在用的Python跟Microsoft C/C++ Compiler的版本必須完全一樣。嗯,你還是需要在你的電腦上也裝上Microsoft C/C++ Compiler

的。在我給出的下載檔案裡,我最後用的是Python3.4,VC10的64位版本。VC++ Compiler的安裝——下載這裡的Microsoft Visual C++ Build Tools 2015,然後安裝。


二:進行安裝

1、其實所謂安裝就是把這個.so檔案改名mod_wsgi.so,然後複製到Apache安裝資料夾下的Modules資料夾裡。我安裝的是wamp,所以我的路徑是D:\wamp64\bin\apache\apache2.4.23\modules。然後再重啟Apache服務,這時我們會發現Wamp的圖示由綠色變成了黃色,點開選單裡的modules,我們會發現這個mod已經被發現,但是由於配置檔案中沒有相關Load Modules語句,所以不能正確載入。


這就提示我們去http.conf中加入相關的語句。不過這個語句不能照抄它這個提示裡給出的,應該寫LoadModule wsgi_module modules/mod_wsgi.so 。這個檔案裡有一大片連在一起的Load Modules語句,可以放在這堆語句的最後,也可以放在整個檔案的最後,這個主要看你習慣。

2、當然,你要執行Django,首先你要有一個需要執行的Django程式,如果大家已經有了,把這個程式的目錄複製到Apache的www資料夾下。然後指路就行了,如果沒有,直接在www下使用Django的startproject也行,具體我就不說了。

3、搞完程式之後,就是指路。在http.conf底下繼續加入一些路徑宣告。網上的教程講到這一塊都已經講的比較詳細了。我現在只針對我的情況說明,我做的是一個非常簡單的頁面。幾乎沒有任何動態效果。也沒有用virtualenv,所以前面只要宣告兩行。因為直接在域名根目錄執行,所以ScriptAlias的前面一部分直接就是‘/’。PythonPath是你Python程式的目錄。

WSGIScriptAlias / D:/wamp64/www/converter/converter/wsgi.py
WSGIPythonPath D:/wamp64/www/converter

# 下面這一部分是授權訪問檔案的許可權。唔,Apache2.3版本以下用來授權的那一句不是這樣寫的。其他都一樣。
<Directory D:/wamp64/www/converter/converter>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

三:完成

在完成這些之後,如果你的Django程式沒有問題,網頁應該就能正常運行了,至少我的程式此時已經可以運行了。在本機上訪問127.0.0.1就可以在瀏覽器裡看到並使用你製作的web程式。如果你有域名,你也可以很方便的把它放到網際網路上。我這裡也不詳細說了,總之,祝大家玩的開心。

附:其實我當時因為比較著急沒有耐心去看幾篇官方的英文文件。其實我相信文件中不難找到適用更新版本,乃至適用python3.6的方法,如果大家有興趣看,英文也無壓力,可以參考以下文件:

· https://pypi.python.org/pypi/mod_wsgi/4.5.15 ——mod_wsgi文件

· https://github.com/GrahamDumpleton/mod_wsgi/blob/develop/win32/README.rst ——官方的在windows上執行mod_wsgi的教程

· https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/modwsgi/ ——Django官方文件的部署教程