说明:
操作系统:Ubuntu Server 16.04.1 LTS 64位
Python版本:Python3.5.2
Django版本:Django2.0.5
开始部署工作:
1.首先进入到ubuntu系统中,切换root:
sudo su
2.更新安装工具:
apt-get update
3.安装python3及一些依赖:
apt-get install python3.5
apt-get install python3-pip apache2 libapache2-mod-wsgi-py3 #安装pip3、apache等等
pip3 install --upgrade pip #更新pip3,小编帮朋友部署的时候遇到过他的系统直接是pip而没有pip3,如果提示不存在pip3就改成 pip install --upgrade pip,以下均改成pip即可
pip3 install virtualenv #创建虚拟环境所需要的一些东西
4.小编把项目创建在/var/www/下,为了方便,先cd进入到/var/www/,在这个目录下创建虚拟环境:
virtualenv venv #venv为虚拟环境名,可自定义
激活虚拟环境:
source venv/bin/activate
激活后前面会有个(venv)
PS:退出虚拟环境的命令是:
deactivate
5.在激活虚拟环境状态下,安装django到虚拟环境:
pip install django # python虚拟环境,都是pip
6.创建django项目:
django-admin.py startproject myproject #myproject是我的项目名字,读者可以自定义
7.cd进入项目目录,小编的是myproject/,会发现里面还有一个myproject目录,这对学过django的应该不陌生,创建django应用:
django-admin startapp test1 #test1是小编创建的应用名字,读者可以自定义
小编在这里创建了static和templates目录,用来存放静态文件和模板
8.在setting.py里更改一些设置:
添加:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
TEMPLATES列表里添加:
'DIRS': [os.path.join(BASE_DIR, 'templates')],
还有设置:
ALLOWED_HOSTS = ['*'] #‘*’修改成你的服务器IP
还有在urls.py配置匹配的url,views.py里添加相应的函数,用来一会测试,这里小编就省略了
9.重点来了,配置Apache:
vim /etc/apache2/sites-available/000-default.conf
在000-default.conf添加:
Alias /templates /var/www/myproject/templates #myproject是项目名字,下同
Alias /static /var/www/myproject/static
<Directory /var/www/myproject/templates>
Require all granted
</Directory>
<Directory /var/www/myproject/static>Require all granted
</Directory>
<Directory /var/www/myproject/myproject><Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess myproject python-home=/var/www/venv python-path=/var/www/myproject #python-home为虚拟环境,python-path为django项目
WSGIProcessGroup myproject
WSGIScriptAlias / /var/www/myproject/myproject/wsgi.py
10.保存之后,检测Apache是否有语法错误:
apache2ctl configtest
11.重启Apache:
systemctl restart apache2
12.在浏览器中输入url测试是否部署成功,如果没反应或者失败查看错误日志:
cat /var/log/apache2/error.log