在Ubuntu16.04上部署django其實還算簡單直觀,最重要的問題就是路徑設置正確,而且保證版本統一,這個測試是在python
Apache/2.4.18 (Ubuntu) apt-get install apache2apache
Python/2.7.11 wget django
mod_wsgi/4.3.0 apt-get install libapache2-mod-wsgiubuntu
一,安裝python 和django。這個很簡單,django用pip安裝就能夠。就不解釋了。瀏覽器
二,安裝apache2 和 wsgi。服務器
這裏用的是apt-get.app
sudo apt-get install apache2測試
sudo apt-get install libapache2-mod-wsgi網站
須要注意的是,若是以前安裝配置過apache2的而且配置很亂,沒法修復,建議仍是徹底卸載以後在安裝。徹底卸載的命令:ui
$ sudo apt-get --purge remove apache-common
$ sudo apt-get --purge remove apache*
安裝完之後,去 /etc/apache2/ 下的 mods-available 和mods-enabled 中查看是否都存在 wsgi.conf 和wsgi.load 兩個文件。
注意檢查:/etc/apache2/mods-enabled/wsgi.load連接文件是否存在,而且檢查文件內容:
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
要chmod 755 mod_wsgi.so文件.
3、配置apache 和 wsgi
(PS.假設你是在目錄/var/www/mysite 下面 django-admin.py startproject testproject ).
一、apache的配置:
在/etc/apache2/sites-available中新建一個文件 testdjango.conf (PS.寫的時候把中文註釋都刪除)
<VirtualHost *:80> ServerName testproject.djangoserver #ServerName這個無所謂,只要在host中把你的ip地址映射到這個上面就能夠了。不想改host最簡單的方法就是
#用 sudo a2dissite 000-default.conf 等虛擬主機給disable掉,只留 testdjango.conf。(PS.在site-enabled中的site是enable的,能夠根據這個來查看) DocumentRoot /var/www/mysite/testproject # 這一條是指向網站的根目錄 <Directory /var/www/mysite/testproject> Order allow,deny Allow from all </Directory> WSGIDaemonProcess .djangoserver processes=2 threads=15 display-name=%{GROUP} WSGIProcessGroup testproject.djangoserver #這裏的testproject.djangoserver 對應前面的ServerName WSGIScriptAlias / /var/www/mysite/testproject/apache/wsgi.py # (/和/var...中間是有空格的)是將後面的那個路徑指向網站的根目錄。第一個「/」表示外部訪問時的網站根目錄,當有新的requset的時候,apache從這裏開始解析。 </VirtualHost>
二、wsgi的配置
在 /var/www/mysite/testproject/下新建dir:apache 。在./apache下新建文件wsgi.py。(文件名對應前面的WSGIScriptAlias第二個路徑下的文件名)
import os import sys path = '/var/www/mysite' if path not in sys.path: sys.path.insert(0, '/var/www/mysite/testproject') #將網站工程目錄臨時加入ubuntu系統環境中 os.environ['DJANGO_SETTINGS_MODULE'] = ' testproject.settings' #新建一個環境變量DJANGO_SETTINGS_MODULE,目的是指向網站工程的settings.py,這裏 #用' testproject.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
配置完成之後
sudo a2ensite testdjango.conf
sudo service apache2 reload
而後瀏覽器http://127.0.0.1 就能夠看見django的初始頁面了。
PS.出錯的話,必定要多看看apache2的err log。
命令行輸入: tail /var/log/apache2/error.log
$ sudo dpkg -l libapache2-mod-wsgi #查看wsgi的版本 結果: libapache2-mod 3.3-4build1 $ a2enmod wsgi #驗證模塊安裝正常 Module wsgi already enabled
若是遇到服務器403的錯誤,那麼多是你的"/"目錄被禁止訪問(默認)
修改一下apache2.conf文件(位於/etc/apache2/)
把Require all denied改成Allow from all就能夠了