1. 程式人生 > >Apache+MySQL+Python+Django在Windows下環境搭建指南(Python Web環境搭建)

Apache+MySQL+Python+Django在Windows下環境搭建指南(Python Web環境搭建)

搭建一個簡單的Python的Web環境 之前一直都是採用PHP做Web伺服器環境,目前一個專案中需要用到python的一個第三方庫(Beautifual Soup ),但是又希望這個服務以Web服務形式提供,苦尋了好久,沒找到php中有對應的庫,只好另闢蹊徑,採用python來搭建一個web服務。
由於專案的需求對web服務要求很簡單,不涉及到複雜的網頁、session處理,在網上查了一圈,發現採用mod_python方式是最簡單的。基本上就是Apache + Python + mod_python的組合,mod_python是Apache和Python之間的橋樑。

本文所使用的軟體版本如下:

python-2.6.6.msi

apache_2.2.9-win32-x86-no_ssl-r2.msi

Django-1.2.tar.gz

mod_python-3.3.1.win32-py2.6-Apache2.2.exe

MySQL-python-1.2.2.win32-py2.6.exe

安裝步驟:
安裝注意事項 :mod_python對apache和python的版本都有比較嚴格的需求,所以安裝時需要找對正確的版本。我安裝的是 mod_python-3.3.1.win32-py2.6-Apache2.2 ,對應的python版本是2.6,Apache版本是2.2.

1.安裝

python
到python官方網站下載,如2.6.6。

Python在Windows上安裝後並沒有自動註冊環境變數,所以在命令列裡直接鍵入Python並不會啟動   Python命令列程式,此時需要在系統中註冊Python環境變數。

Python的安裝路徑為

C:\Python26

環境變數註冊:

我的電腦->屬性->高階->環境變數->系統變數

雙擊PATH項,修改PATH的值為

C:\Python26;

檢測是否安裝成功

執行-cmd,輸入python,如果順利進入python則說明安裝成功

2.安裝Django
http://tortoisesvn.sourceforge.net/ 下載tortoisesvn

簽出http://code.djangoproject.com/svn/django/trunk/django

Copy django 到 C:\Python26\Lib\site-packages\

Copy C:\Python26\Lib\site-packages\django\bin\django-admin.py 到 C:\Python26\Scripts。

cmd,鍵入python

>>>import django  
>>>django.VERSION
>>>import django
>>>django.VERSION

新增系統環境變數:
C:\Python26\Lib\site-packages\django\bin;

正常應該可以看到django的版本資訊

Django也可以採用另外一種安裝方式:

建議用第二種方式,先配置好當前Python版本的環境變數,然後執行安裝指令碼。

3.安裝Apache Server
    先從apache網站上下載版本,我下載的是Apache2.2.14 版本,安裝也基本上是一路預設設定,中間有一個步驟是填寫域名、管理員資訊的,隨便填一個就行了。還有一個步驟選擇所有人還是隻有當前使用者使用時,可以隨便選擇一個,二者就是埠的差別了。
    安裝完畢後,選擇開始-->Apache HTTP Server 2.2-->Control Apache Server--> Start Apache in Console.啟動Apache Server.然後在瀏覽器中進行測試。http://localhost:8080(埠根據你的選擇有變化).如果一切正常應該會出現It Works字樣了。

apache server2.2下載地址:

4.安裝mod_python
    下載mod_python . 安裝時會自動檢測到python的安裝位置。但是需要手動選擇apache的安裝位置。選擇到apache2.2這一層(我的電腦是C:\Program Files\Apache Software Foundation\Apache2.2).mod_python在python的lib目錄下增加了一些庫,同時在Apache的modules目錄下增加了mod_python.so庫。

Mod_python是apache 中支援Python CGI的模組。直接下載win32版的安裝程式安裝即可,我用的是Apache Mod_python 3.3.1。安裝程式會自己找到Python的安裝目錄,在Python的Lib\site-packagesib下增加目錄mod_python。

5.資料庫驅動程式安裝
    Web程式如果需要訪問資料庫,必須安裝相應資料庫的驅動程式。我用的是MySQL資料庫,直接下載win32版安裝即可,我用的是MySQL-python-1.2.2.win32-py2.6.exe

。安裝程式會在Python的Lib\site-packagesib下增加目錄MySQLdb。

參考目錄:

配置apache
    1. 增加mod_pythonmod_python不會自動修改配置檔案。要想apache知道如何解析.py檔案,就需要在apache的httpd.conf檔案中進行一些配置。在httpd.conf檔案中有一堆LoadModule命令,我們增加一行


#
#LoadModule logio_module modules/mod_logio.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_forensic_module modules/mod_log_forensic.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule status_module modules/mod_status.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule version_module modules/mod_version.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule python_module modules/mod_python.so

     這一行,主要功能是載入mod_python.so庫。
    2. 配置虛擬目錄。
        類似於Apache伺服器的其他語言配置。在Httpd.conf檔案中增加一個目錄塊。

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/test ">
    AddHandler mod_python .py
  PythonHandler fetchpage
  PythonDebug On
</Directory>

        其中fetchpage是.py檔名
    3. 編寫一個測試檔案。儲存在/htdocs/test目錄下,檔名和上面配置檔案中保持一致。
        from mod_python import apache
        def handler(req):
        req.content_type = 'text/plain'
       
        req.write("Hello World!\n")
        return apache.OK
       
    在瀏覽器中輸入:http://localhost:8080/test/fetchpage.py.如果正常,應該就可以顯示Hello World的字樣了。