將Django 加至apache 上 on Ubuntu 16

 

首先說說為什麼大家不用Django內建的測試用網路伺服器當作正式的伺服器呢?

  1. 效能
  2. 安全

簡單來說就是這兩點,詳細的差異網路上也很有多人在說明,這邊就不多說了。

那麼直接開始今天的內容,以下分成五大部分:

  1. 安裝網路伺服器
  2. 安裝apach的django mod
  3. 調整專案中的wsgi.py內容
  4. 調整apach2設定

第一部分 安裝網路伺服器

這邊就是使用lamp沒有什麼特別的,安裝方式請參閱ubuntu server template 建置,這邊附上簡單指令不多說!

Lamp 
#安裝 lamp-server
sudo apt install lamp-server^

第二部分 安裝apach的django mod

安裝方式是通過apt-get,並且安裝完後要求網路伺服器使用,指令如下:

mod-wsgi 
sudo apt-get install libapache2-mod-wsgi
sudo a2enmod wsgi

第三部分 調整專案中的wsgi.py內容

這邊我提供範例檔案,記得要調整路徑至自己要執行的Django路徑,並且也要開放該資料夾的外部取用權限,然後記得要將自己的檔案位置加入至環境路徑。(Django範例檔案,需要請服用

#/path/to/DjangoForWulab/Django/myproject/myproject/wsgi.py

import os

from django.core.wsgi import get_wsgi_application

# GETTING-STARTED: change 'myproject' to your project name:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")

application = get_wsgi_application()



import os, sys
sys.path.append('/path/to/DjangoForWulab/Django/myproject/')
sys.path.append('/path/to/DjangoForWulab/Django/')
sys.path.append('/path/to/DjangoForWulab/')
import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()

第四部分 調整apach2設定

螢幕快照 2017-12-22 下午10.29.56.png

首先至/etc/apache2/conf-available新增一個設定檔,命名為wsgi.conf,(需要先用chmod開啟權限或是用root權限),然後內容如下,也切記要調整路徑。

#/etc/apache2/conf-available/wsgi.conf

WSGIScriptAlias /Django /path/to/DjangoForWulab/Django/myproject/myproject/wsgi.py
WSGIPythonPath  /path/to/DjangoForWulab/Django/myproject/
WSGIApplicationGroup %{GLOBAL}

<Directory "/path/to/DjangoForWulab/Django/myproject/myproject/">
       <Files "wsgi.py">
              Require all granted
       </Files>       
</Directory>
       

WSGIScriptAlias 後面接的第一個參數是設置django的根目錄位置,若要使用”/”也可,只是要小心php與phpmyadmin要調整至別的路徑否則將不能使用。

最後只要執行讀取設定與重起網路伺服器的命令即可。

sudo a2enconf wsgi
sudo service apache2 restart

 

Add a Comment

發佈留言必須填寫的電子郵件地址不會公開。