环境信息:Ubuntu16
1.安装apache2和mod_wsgi
sudo apt install apache2
# python2
sudo apt install libapache2-mod-wsgi
# python3
sudo apt install libapache2-mod-wsgi-py3
2.准备一个新网站
ubuntu的apache配置文件在/etc/apache2/下
备注:centos用户apache2名称为httpd在/etc/httpd/中
新建一个网站配置文件
touch /etc/apache2/sites-available/sitename.conf
举例配置如下:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
ServerAdmin xxxxxxx@qq.com
Alias /media/ /home/ubuntu/mysite/weixin/media/
Alias /static/ /home/ubuntu/mysite/weixin/static/
<Directory /home/ubuntu/mysite/weixin/media>
Require all granted
</Directory>
<Directory /home/ubuntu/mysite/weixin/static>
Require all granted
</Directory>
# 把下面的这两行去掉注释可以使用virtualenv来部署
# WSGIScriptAlias / /home/ubuntu/mysite/weixin/weixin/wsgi.py
# WSGIDaemonProcess example.com python-path=/home/ubuntu/mysite/weixin python-home=/home/ubuntu/env/python35/lib/python3.5/site-packages
WSGIProcessGroup example.com
<Directory /home/ubuntu/mysite/weixin/weixin>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
3.删掉目录下原来的配置文件,只留自己创建的,如:
root@VM-152-59-ubuntu:/etc/apache2/sites-available# ls -l
total 12
-rw-r--r-- 1 root root 6338 Apr 6 2016 default-ssl.conf
-rw-r--r-- 1 root root 817 Oct 15 15:38 weixin.conf
root@VM-152-59-ubuntu:/etc/apache2/sites-available# ls -l ../sites-enabled/
total 0
lrwxrwxrwx 1 root root 30 Oct 15 13:15 weixin.conf -> ../sites-available/weixin.conf
4.Django的setting.py中设置下允许访问的IP
ALLOWED_HOSTS = ['*']
5.激活新网站
sudo a2ensite sitename 或 sudo a2ensite sitename.conf