2014年10月17日 星期五

Django 佈署在ubuntu上 (EC2)

這篇記錄使用apache server 和 mod_wsgi 將django部署在ubuntu ec2 instance上的過程.

基本上不是在ec2上機器也可以使用,不過這篇我是開一個新的ec2 instance邊做邊寫的,理論上照著步驟走可以順裡跑起來.

當然通常這種事情不會跟著理論走就是了^.<

ubuntu使用aws ec2提供的的ubuntu image


目標:


在乾淨的機器上快速架設django網站的環境.

儘量簡化過程建立最基本的環境.


前置準備:


  1. 弄出一個ubuntu ec2 instance (記得security group要開port給tcp, 這裡我開80)
  2. 一團djnago的code ( 要已經可用python manage.py runserver 跑debug)
  3. 把那團django的code丟到 ec2 上的/home/ubuntu  (或是另外開一個專屬django得user更好)

步驟:



一. ssh 連線到ec2上並且使用下列指令安裝套件們:


  1. sudo apt-get update           //怒更新一下apt-get
  2. sudo apt-get install python-pip python-dev build-essential   //怒裝一發python相關套件
  3. sudo pip install virtualenv   //這雖然非必要但是很好用 怒用一發

二.使用virtualenv並且安裝django跟其他python套件


  1. virtualenv  venv           //建立virtual environment
  2. . venv/bin/activate    //使用這個env
  3. pip install django   
  4. pip install $你需要的套件們
     截至此刻, 已經可以使用 

     python manage.py runserver 0.0.0.0:8080 


三. 安裝與設定apache


  1. sudo apt-get install apache2 apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
  2. sudo apt-get install libapache2-mod-wsgi
  3. sudo adduser www-data ubuntu    #將apache所使用的www-data user加入ubuntu group(source code資料夾group為ubuntu的情況)

四.建立apache與django project 所使用的wsgi.py的連接


     1.在/etc/apache2/sites-available 下面建立一個新的設定檔, 注意新版apache在這邊            的設定檔案一定要是.conf 附檔名. 這先就先取 kerker.conf
         檔案內容如下:
   
     2. sudo a2ensite kerker.conf
          
     3.記得如果kerker.conf裡面使用的port是80的話要把用 a2dissite 把site-enable下其他port也是80的conf關掉不然會衝到, 如sudo a2dissite 000-default.conf



五. 大功告成打開瀏覽器連到這個ec2 instance的ip就可以看到網頁


















沒有留言:

張貼留言