《乌本图伺服者的简陋之路》
django-ubuntu-deployer的Python项目详细描述
django ubuntu部署程序
这是一个简单的包,用于在ubuntu服务器16.04或最新版本上部署django项目。
做文章How To Set Up Django with Postgres, Nginx, and Gunicorn on Ubuntu 16.04 | DigitalOcean中写的事情。
在ubuntu服务器中
ubuntu@server:~# cd /home/ ubuntu@server:/home# sudo apt-get update ubuntu@server:/home# sudo apt-get install python3-pip python3-dev libpq-dev nginx
安装virtualenv以创建虚拟环境:
ubuntu@server:/home# pip3 install virtualenv
创建项目文件夹并输入:
ubuntu@server:/home# mkdir project && cd project
创建虚拟环境并激活:
ubuntu@server:/home/project# virtualenv venv ubuntu@server:/home/project# source venv/bin/activate
安装django、django_ubuntu_deployer和gunicorn
(venv)ubuntu@server:/home/project# pip install django django_ubuntu_deployer gunicorn
在已安装的应用程序中注册django_ubuntu_deployer
INSTALLED_APPS=[...,'ubuntu_deployer',]
将域添加到允许的主机:
ALLOWED_HOSTS=['your domain 1',...,'your domain n',]
收集静态文件:
(venv)ubuntu@server:/home/project# python manage.py collectstatic
现在在ubuntu服务器上部署您的应用程序(用于此用户名和密码):
(venv)ubuntu@server:/home/project# python manage.py deploy
INSTALLED_APPS=[...,'ubuntu_deployer',]
将域添加到允许的主机:
ALLOWED_HOSTS=['your domain 1',...,'your domain n',]
收集静态文件:
(venv)ubuntu@server:/home/project# python manage.py collectstatic
现在在ubuntu服务器上部署您的应用程序(用于此用户名和密码):
(venv)ubuntu@server:/home/project# python manage.py deploy
或重新启动服务器
(venv)ubuntu@server:/home/project# python manage.py deploy --restart
配置gunicorn、nginx和virtual environment文件夹
在您的设置中。py:
DJANGO_UBUNTU_DEPLOYER={# gunicorn config# required in gunicorn config {user}, {path}, {gunicorn}, {sock}, {name}'GUNICORN_CONFIG':"""Description=gunicorn daemonAfter=network.target[Service]User={user}Group=www-dataWorkingDirectory={path}ExecStart={gunicorn} --access-logfile - --workers 3 --bind unix:{sock}{name}.wsgi:application[Install]WantedBy=multi-user.target """,# nginx config# required in nginx config {domains}, {static}, {media}, {path}, {sock}, {extras}'NGINX_CONFIG':"""server {{ listen 80; server_name {domains}; location = /favicon.ico {{ access_log off; log_not_found off; }} location {static} {{ root {path}; }} location {media} {{ root {path}; }} location / {{ include proxy_params; proxy_pass http://unix:{sock}; }}{extras}}} """,# nginx_config extras'NGINX_EXTRAS':'',}