空服务器搭建nginx+Django上线环境

7 篇文章 0 订阅
3 篇文章 0 订阅

!!!⚠注意:全程要在服务器同一用户下操作!!!


文中服务器环境:Ubuntu 18.04 + python 3.8 + django 2.2.24 + mysql 5.7 + uwsgi 2.0.18 + nginx 1.14


  • 最近项目需要,租了个阿里云服务器部署项目,已成功。
  • 按以下流程走,可以在一台空服务器(如从阿里云等厂商新租用 或 自己的虚拟机)中,搭建出能够将Django项目正常运行起来的个人用Ubuntu上线环境(nginx做反向代理,服务器流量走uwsgi),有更好的建议或问题可评论交流。
  • 关于搭建部署环境时遇到的问题及解决方法见以下链接:

vim

sudo apt install vim

python

如果不需要root用户跑项目,建议不要sudo,不然容易和自带python版本混乱

01、以root用户或具有sudo访问权限的用户身份运行以下命令,以更新软件包列表并安装必备组件:

sudo apt update
sudo apt install software-properties-common

02、将deadsnakes PPA添加到系统的来源列表中:

sudo add-apt-repository ppa:deadsnakes/ppa

出现提示时,按Enter继续

03、启用存储库后,请使用以下命令安装Python 3.8:

sudo apt install python3.8

django

直接安装:

sudo pip3 install django==2.2.24

备用命令:

apt install python-django-common
python3 -m pip install

mysql

软件安装

sudo apt-get install mysql-server
apt-get isntall mysql-client
sudo apt-get install libmysqlclient-dev

django连接依赖

sudo apt-get install python3-dev default-libmysqlclient-dev
sudo pip3 install mysqlclient

创建数据库(mysql命令行执行)

create database 数据库名 default charset utf8

注:数据库名通常与项目名保持一致

python3生成后台管理系统数据库表

python3 manage.py makemigrations
python3 manage.py migrate

添加admin用户(在项目目录下)

python3 manage.py createsuperuser

uwsgi

sudo pip3 install uwsgi==2.0.18
修改uwsgi.ini

...
socket=你的主机ip:8000
chdir=/.../my_projiect(项目绝对路径)
wsgi-file=my_project/wsgi.py

启动uwsgi:uwsgi --ini uwsgi.ini
停止uwsgi:uwsgi --stop uwsgi.pid
查看进程:ps aux|grep ‘uwsgi’


nginx

sudo apt-get install nginx

修改nginx配置

sudo vim /etc/nginx/sites-enabled/default
    location / {
        uwsgi_pass 你的主机ip:8000;
        include /etc/nginx/uwsgi_params;
    }
sudo /etc/init.d/nginx restart

静态文件

新建文件夹 mkdir /home/用户名/项目名_static/
在项目 settings.py 中添加新配置
STATIC_ROOT = ‘/home/用户名/项目名_static/static’

进入项目目录,执行

python3 manage.py collectstatic

在nginx配置中添加static文件路径,否则nginx访问不到静态资源

sudo vim /etc/nginx/sites-enabled/default
    location / {
        uwsgi_pass 你的主机ip:8000;
        include /etc/nginx/uwsgi_params;
    }
    location /static {
        root /home/用户名/项目名_static;
    }

重启nginx

sudo /etc/init.d/nginx restart

问题排查路径(看日志):

cat var/log/nginx/error.log
cat 项目路径/同名文件夹/uwsgi.log
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值