🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
Django_Ubuntu_Web部署 一、环境配置 1、Ubuntu 14.04 阿里云 2、python2.7 3、nginx 4、uWSGI 二、环境部署 1、服务器更新升级 ~~~ sudo apt-get update sudo apt-get upgrade ~~~ 2、通过宝塔搭建nginx,方便后续多网站管理 `wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh` 登录宝塔安装 [nginx-1.12] 3、通过宝塔建立网站 4、django源码上传至网站目录/www/py.guigudoor.com 5、更换pip源 ~~~ sudo mkdir ~/.pip sudo vi ~/.pip/pip.conf ~~~ 输入: ~~~ [global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com ~~~ 三、上传django源码 1、安装配置文件 在已配置好的机器上导出配置文件 `pip freeze > requirements.txt` 然后进入项目目录安装配置 `pip install -r requirements.txt` 2、测试外网访问 python manage.py runserver 0.0.0.0:8000 > 备注:如果访问不来,请确定服务器、宝塔或者其他安全是否放行8000端口。 三、uWSGI的配置 1、安装uWSGI: `sudo pip install uwsgi` 2、启动测试: www/wwwroot/py.guigudoor.com 为网站目录、guigu为django项目目录 `uwsgi --http :8000 --chdir /www/wwwroot/py.guigudoor.com/ -w guigu.wsgi` > 如果出错更新下面操作 > 安装python-dev包:sudo apt-get install python-dev > 安装或升级pip :sudo apt-get install python-pip > 升级:sudo pip install --upgrade pip 3、配置uWSGI文件: ~~~ mkdir -p /etc/uwsgi/sites cd /etc/uwsgi/sites vi guigu.ini ~~~ 配置guigu.ini chdir = www/wwwroot/py.guigudoor.com 网站目录 guigu.wsgi django项目目录 ~~~ [uwsgi] chdir = /www/wwwroot/py.guigudoor.com module = guigu.wsgi master = true processes = 10 socket = /www/wwwroot/py.guigudoor.com/guigu.sock vacuum = true ~~~ 4、建立一个自启脚本: `vi /etc/init/uwsgi.conf` 配置uwsgi.conf ~~~ description "uWSGI application server in Emperor mode" start on runlevel [2345] stop on runlevel [!2345] setuid guigu setgid www-data exec /usr/local/bin/uwsgi --emperor /etc/uwsgi/sites ~~~ 四、通过宝塔配置网站Nginx 1、网站—设置—配置文件 配置添加 ~~~ server { listen 80; server_name py.guigudoor.com; location /static/ { root /www/wwwroot/py.guigudoor.com; } location / { include uwsgi_params; uwsgi_pass unix:/www/wwwroot/py.guigudoor.com/guigu.sock; } } ~~~ ~~~ #样本 server { listen 80; server_name py.guigudoor.com; index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/py.guigudoor.com; location /static/ { root /www/wwwroot/py.guigudoor.com; } location / { include uwsgi_params; uwsgi_pass unix:/www/wwwroot/py.guigudoor.com/guigu.sock; } #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 #error_page 404/404.html; #SSL-END #ERROR-PAGE-START 错误页配置,可以注释、删除或修改 error_page 404 /404.html; error_page 502 /502.html; #ERROR-PAGE-END #PHP-INFO-START PHP引用配置,可以注释或修改 include enable-php-54.conf; #PHP-INFO-END #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效 include /www/server/panel/vhost/rewrite/py.guigudoor.com.conf; #REWRITE-END #禁止访问的文件或目录 location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md) { return 404; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; access_log off; } location ~ .*\.(js|css)?$ { expires 12h; access_log off; } access_log /www/wwwlogs/py.guigudoor.com.log; } ~~~ 2、重启nginx 3、启动uWSGI配置 `uwsgi /etc/uwsgi/sites/guigu.ini -d /www/wwwroot/py.guigudoor.com/guigu.log` > etc/uwsgi/sites/guigu.ini uWSGI配置文件 > www/wwwroot/py.guigudoor.com/guigu.log 项目目录 4、静态文件收集 `python manage.py collectstatic` 备注:需要settings.py修改配置 ~~~ #样本 STATIC_URL = '/static/' # 加入下面的配置 STATIC_ROOT = os.path.join(BASE_DIR, 'static') ~~~ 静态文件访问不了(服务器模式没有添加'DIRS': [os.path.join(BASE_DIR, 'templates')],) ~~~ #样本 TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], ~~~ ### 提示:每次重启需要启动uWSGI配置