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

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

1. 安裝pythonmysql

ubuntu自帶python,所以通常不須要安裝,本文所使用的版本爲2.7web

2. 安裝mysql-serversql

 
 
  1. sudo apt-cache search mysql-server #查詢能夠安裝的版本 apache

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

3. 安裝mysqlPythonubuntu

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

  • 安裝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

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

相關文章
相關標籤/搜索