Ubuntu下Django+Apache+mod_wsgi部署
阿新 • • 發佈:2019-01-09
OS: Ubuntu16.04LTS
Django: 1.11
Python: 2.7.11
Apache: 2.4
本文只是Django+Apache的簡單部署
首先將Django Project放到/var/www目錄下
1. 安裝Apache和mod_wsgi
sudo apt-get install apache2
sudo apt install libapache2-mod-wsgi
pip install virtualenv
2. 修改Django wsgi.py
import os
import sys
from django.core.wsgi import get_wsgi_application
PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, PROJECT_DIR)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
application = get_wsgi_application()
3. 建立Apache配置檔案
sudo vim /etc/apache2/sites-available/sitename.conf
內容如下:
<VirtualHost *:80>
ServerName 192.168.191.2
ServerAlias otherdomain.com
ServerAdmin [email protected]163.com
DocumentRoot /var/www/mysite
Alias /media/ /var/www/mysite/media/
Alias /static/ /var/www/mysite/static/
<Directory /var/www/mysite/media>
Require all granted
</Directory>
<Directory /var/www/mysite/static>
Require all granted
</Directory>
WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py
WSGIDaemonProcess http://192.168.191.2 python-path=/var/www/mysite:/home/dang/pywork/webenv/lib/python2.7/site-packages
WSGIProcessGroup http://192.168.191.2
<Directory /var/www/mysite/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
#ErrorLog ${APACHE_LOG_DIR}/error.log
#CustomLog ${APACHE_LOG_DIR}/access.logcombined
</VirtualHost>
由於我使用的是virtualenv環境,所有需要在上面的配置檔案中新增如下內容:
WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py
WSGIDaemonProcess http://192.168.191.2 python-path=/var/www/mysite:/home/dang/pywork/webenv/lib/python2.7/site-packages
WSGIProcessGroup http://192.168.191.2
啟用配置檔案
sudo a2ensite sitename.conf
重啟Apache server
sudo service apache2 restart
此時可以就去訪問了。
注意:如果專案使用sqllite資料庫或者目錄下存在上傳目錄需要設定修改許可權。