1. 程式人生 > >Ubuntu14下搭建apache+django的小白教程

Ubuntu14下搭建apache+django的小白教程

一、   環境說明:

ubuntu:14.04

apache:2.4

 python:3.4

 Django:2.0.3

二、   apache 預備知識

tips:瞭解本塊知識有助於在你配置失敗的時候知道dubug的方向(大佬可直接跳過)

1.      可執行程式所在目錄 /usr/sbin/apache2

2.      配置檔案所在目錄 /etc/apache2/

3.      Windows和linux下的apache配置的區別:

  • linux的配置檔案並不都在apache2.conf下,而是分散在不同的檔案,所以有時候在apache2.conf下重複配置的話會出現module reload這種warning。
  • windows下的httpd.conf相當於linux下的/etc/apache2/apache2.conf
  • 埠配置:/etc/apache2/ports.conf
  • 模組的匯入:/etc/apache2/mods-enabled/(該目錄下有好多資料夾,每一個模組都是用一個對應的load檔案來單獨配置的)
  • windows下的httpd-vhosts.conf相當於/etc/apache2/sites-available/default.conf,但是一般不修改自帶的default.conf檔案,會另外新建一個自己專案的conf檔案,例如reID.conf。

三、    安裝apache2.4+Django2.0+Python3

  1. 安裝python3:$sudo apt-getinstall python3
  2. 安裝pip3:$sudo apt-getinstall python3-pip
  3. 安裝django:$pip3 installdjango==2.0.3
  4. 安裝apache2:$sudo apt-get install apache2 (tips:$apachectl-v檢視apache版本)
  5. 安裝mod_wsgi模組$sudo apt-get install libapache2-mod-wsgi-py3

四、    Apache+Django配置(重頭戲!!!):

1.     修改埠:$vim /etc/apache2/port.conf,將Listen80改成Listen 10.141.4.188:8080

2.     檢查 /etc/apache2/mods-enabled目錄下有沒有wsgi.load檔案,

沒有的話新建這個檔案($sudo vim wsgi.load),並新增一行:

LoadModule wsgi_module/usr/lib/apache2/modules/mod_wsgi.so

3.      虛擬主機配置:

$cd /etc/apache2/sites-available

$ sudo vim reID.conf

新增如下內容:

<VirtualHost *:8080>

DocumentRoot /home/imc/fql/Bonnacon

DirectoryIndex login.html 

WSGIScriptAlias //home/imc/fql/Bonnacon/grad/wsgi.py

<Directory/home/imc/fql/Bonnacon/grad>

<Files wsgi.py>

Require all granted

</Files>

AllowOverride none

Require all denied

</Directory>

Alias /static//home/imc/fql/Bonnacon/reID/static/

<Directory/home/imc/fql/Bonnacon/reID/static>

Require all granted

</Directory>

DocumentRoot/home/imc/fql/Bonnacon/reID/templates

<Directory /home/imc/fql>

Options Indexes FollowSymLinks

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

4.     配置主配置檔案:

$vim /etc/apache2/apache2.conf

新增如下內容:

ServerName 10.141.4.188:8080

#IncludeOptional sites-enabled/*.conf

IncludeOptionalsites-available/reID.conf

5.     修改django專案裡的wsgi檔案:

import os

import sys

sys.path.append('/home/imc/fql/Bonnacon/')#專案所在目錄

from django.core.wsgi importget_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE","grad.settings")

application = get_wsgi_application()

五、   更新配置

$sudo a2ensite reID.conf    # enable該站點

$sudo service apache2 reload   # 重新載入Apache伺服器配置

六、   啟動apache

$sudo service apache2 restart

tips:apache錯誤日誌所在目錄:/var/log/apache2/error.log