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
- 安裝python3:$sudo apt-getinstall python3
- 安裝pip3:$sudo apt-getinstall python3-pip
- 安裝django:$pip3 installdjango==2.0.3
- 安裝apache2:$sudo apt-get install apache2 (tips:$apachectl-v檢視apache版本)
- 安裝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