Ubuntu11.04下Django安裝以及發佈配置

Django是當前流行的基於python的開源web開發框架,容易上手而且代碼的重用性也很好,是敏捷開發的典範。本文將着重介紹如何在ubuntu下安裝django並通過apache發佈django項目。請儘量按照文中提到的軟件版本號進行安裝有些版本間的兼容問題會導致安裝不成功。例如在ubuntu 12.04上進行部署發現安裝很多軟件都因爲依賴關係而不能夠安裝。Let's begin!

1. 安裝python

ubuntu自帶python,因此一般不需要安裝,本文所使用的版本爲2.7

2. 安裝mysql-server

  1. sudo apt-cache search mysql-server #查詢可以安裝的版本

  2. sudo apt-get install mysql-server-5.1 #本文中安裝5.1

3. 安裝mysqlPython

  1. tar -zxvf MySQL-python-1.2.3.tar.gz

  • 安裝mysql開發包

  1. sudo apt-get install libmysqld-dev

  • 進入目錄,修改文件site.cfg去掉這一行的註釋 #mysql_config=/usr/local/bin/mysql_config並且更新本地mysql_config的路徑,我的本地路徑是/usr/bin/mysql_config

  • 安裝setuptools

  1. sudo apt-get install python-setuptools

  • 安裝python開發包

  1. sudo apt-get install python-dev

  • 最後,執行編譯安裝

  1. sudo python setup.py install

  • 編譯過程中可能出現的錯誤及解決方法:

EnvironmentError: /usr/bin/mysql_config not found 解決方法:安裝libmysqld-dev

ImportError: No module named setuptools 解決方法:安裝python-setuptools

pymemcompat.h:10:20: fatal error: Python.h: No such file or directory 解決方法:安裝python-dev

4. 安裝django

之前的三個步驟都爲安裝django做好了準備,打通了python和mysql之間的通道。

  1. sudo python setup.py install

5. 安裝apache

  1. sudo apt-get install apache2

6. 安裝mod_python

  1. sudo apt-get install apache2-dev

  • 解壓之後進入目錄執行(路徑根據實際路徑更改)

  1. ./configure –with-apxs=/usr/bin/apxs2 –with-python=/usr/bin/python

  • 源代碼中有一個公認的bug需要修復,在src/connobject.c的第142行:

  1. !(b == APR_BRIGADE_SENTINEL(b)

改爲

  1. !(b == APR_BRIGADE_SENTINEL(bb)

  • 最後編譯安裝

  1. sudo make & make install

7. 配置apache

  • 在mod_python安裝好之後,我們會在/usr/lib/apache2/modules下發現新創建的mod_python.so, 我們在目錄/etc/apache2/mods-available下按照其他文件格式一樣新建文件python.load,內容爲:

  1. LoadModule python_module /usr/lib/apache2/modules/mod_python.so

同時在mods-enabled下建立到這個文件的鏈接

  1. sudo ln -s ../mods-available/python.load python.load

8. 發佈網頁

這裏將着重介紹如何將一個django項目通過apache向外發佈以讓外網訪問。

  • 首先,建立一個project,取名mysite,目標目錄設在/home/user_name/Workspace

  1. django-admin.py startproject mysite

  • /usr/apache2/sites-available下新建site配置文件mysite,內容如下:

  1. <Location "/">

  2. SetHandler python-program

  3. PythonPath "['/home/user_name/Workspace/mysite/'] + sys.path"

  4. PythonHandler django.core.handlers.modpython

  5. SetEnv DJANGO_SETTINGS_MODULE mysite.settings

  6. PythonOption django.root /

  7. PythonDebug On

  8. </Location>

  • 啓用site

  1. sudo a2ensite mysite

  • 重啓apache,

  1. sudo /etc/init.d/apache2 restart

如果看到以下畫面則說明部署成功

235210439.png

這僅僅是一個最小項目的部署情況,針對較爲複雜的項目,會在下一篇文章中討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章