侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

django2+uwsgi+nginx上线部署到服务器Ubuntu16.04

linux  /  管理员 发布于 5年前   233

1.前期准备

1.打开Terminal终端,执行以下命令,将项目所需要的依赖包,都记录到一个文件内备用。

pip freeze >requirements.txt

2.将项目文件夹→右键→添加压缩文件,压缩为zip包

3.准备软件

1.xshell(用于远程操作服务器)2.FileZilla(用于从客户端将项目包上传到服务器)3.Navicat 12 (用于同步数据库)

4.环境云

服务器/云主机:京东云

(云服务还是要选大厂的,我也试过一些比较小的厂的云服务,不说是哪家了,哇,简直是坑啊,各种报错各种什么都安不上。友情提醒,云服务还是要在腾讯云、阿里云、百度云、金山云、京东云、网易云这些里面选用吧。国外的像亚马逊啊,虽然云计算的技术上可能领先于国内云,价格也更加公道,但是,有些事,大家应该懂得,所以,贵是贵了点,还是选国内的吧。)

系统:Ubuntu16.04 64位

2.基本配置

1.使用xshell链接云服务器/云主机系统(云服务器和云主机在这里概念差不多可以等同,后面都叫云服务器)1.打开xshell→【文件】→【新建】,输入你云服务器的公网ip

2.选择刚刚建立的会话,然后点【连接】

3.输入登录用户名:root

4.输入登录密码

5.连接成功

2.新建用户ubuntu

1.执行命令

adduser ubuntu#设置密码#确认密码#设置姓#设置名#设置电话#设置家庭电话#除了密码以为,其他的这些信息用处不大y+回车cd /home #切换到家目录下ls #查看家目录下的目录,可以看到ubuntu的目录已经建立

2.切换用户ubuntu

3.给普通用户ubuntu添加权限

#切换回root用户su root#输入root登录密码chmod u+w /etc/sudoers #给sudoers增加写权利vim /etc/sudoers#编辑sudoers,在找到这行 root ALL=(ALL) ALL,在他下面添加ubuntu   ALL=(ALL)   NOPASSWD: ALLchmod u-w /etc/sudoers#取消sudoers的写权利su ubuntu #切换会ubuntu用户

3.同步数据库

1.安装mysql数据库

sudo apt-get install mysql-server -y#设置密码:(不显示,请将密码设置的与客户端上数据库密码一致,方便使用)sudo apt-get install mysql-clientsudo apt-get install libmysqlclient-dev -y

2.配置远程连接权限

su root #切换root用户#root 登录密码vim /etc/mysql/mysql.conf.d/mysqld.cnf # 英文输入环境下,敲 i 键,进入插入模式#上下左右键移动光标,注释掉 bind-address = 127.0.0.1#英文输入环境下,敲Esc键,输入:wq 保存退出
mysql -u root -p#输入密码(不显示),登录mysqlGRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;flush privileges;quit
#用Navicat链接服务器数据库,如果报错:fuser -k 3306/tcp#将客户端数据库通过数据传输,传输到服务器

3.使用Navicat 12 同步数据库

1.创立连接

2.建立本地连接

3.建立服务器链接

4.传输数据库

然后点击【开始】等待传完100%

5.查看一下数据库是否上传成功

mysql -u root -pshow databases;#查看所有数据库quit #退出数据库

4.取消远程连接数据库权限

vim /etc/mysql/mysql.conf.d/mysqld.cnf# 英文输入环境下,敲 i 键,进入插入模式#上下左右键移动光标,去掉 bind-address = 127.0.0.1这行的注释#英文输入环境下,敲Esc键,输入:wq 保存退出

4.上传项目

su ubuntu #切换回ubuntu用户

1.使用FileZilla上传项目zip包

2.解压项目zip包

sudo apt install unzipunzip xueyiwang.zip 

5.安装Python3.6

sudo add-apt-repository ppa:fkrull/deadsnakes #然后会提示你敲击回车键#回车sudo apt-get install python-software-properties -ysudo apt-get updatesudo apt-get install python3.6-dev python3.6-venv -ysudo apt install python-pip -y

6.配置虚拟环境

1.安装依赖包

python3.6 -m venv env36#在当前目录下,创建一个python3.6的虚拟环境,取名为env36,目前自带虚拟环境只支持到3.6.2. env36/bin/activate#进入虚拟环境#退出虚拟环境 deactivatecd xueyiwangpip3 install -r requirments.txt#安装相关依赖包,其中requirments.txt,是在客户端时,通过pip freeze > requirments.txt获得#这个过程也许需要多等一会,比较low一点的云服务就慢一些,亲身体验,bat里,百度的最慢#有可能pip要升级,如果版本过时,会提示用户更新命令的

2.修改settings.py

cd xueyiwangvim settings.py

#进入settings.py文件中,点击i键,变为编辑模式#通过上下左右键移动光标ALLOWED_HOSTS = ['公网ip']#在最底追加STATIC_ROOT=os.path.join(BASE_DIR,"static/")#然后敲Esc键,输入:wq 保存退出

3.测试运行项目

cd ..python manage.py runserver 0.0.0.0:8000 #浏览器访问:公网ip+8000 #发现啥都有啦!#ctrl+c退出项目运行状态

7.虚拟环境中安装uwsgi

1.安装

cd ~pip3 install uwsgi

2.检测是否安装成功

cd xueyiwanguwsgi --http :8000 --module xueyiwang.wsgi#通过uwsgi启动项目,这一步必须在项目目录下操作执行#ctrl+C键关闭项目服务状态#fuser -k 8000/tcp#关闭8000端口占用#浏览器访问公网ip+8000 仍然可以正常访问,证明uwsgi安装成功

8.安装配置nginx

1.安装nginx

cd ..sudo apt install nginx -y

2.配置uwsgi与nginx连接

cd xueyiwangcp /etc/nginx/uwsgi_params .  #在项目目录下执行,注意后面这个点儿别落下 #回到~目录下cd ..

3.配置uwsgi.ini

vim uwsgi.ini#进入uwsgi.ini,然后在英文输入下敲i键,进入插入模式,将以下内容填充进去(通过敲i键进入插入模式这一步不能省略,不然粘贴进去的内容会部分丢失)#然后在英文输入下,Esc键,然后输入冒号wq+回车,保存退出。
[uwsgi]chdir=/home/ubuntu/xueyiwangmodule=xueyiwang.wsgi:applicationhome=/home/ubuntu/env36master=trueprocesses=10socket=:8001chmod-socket = 666vacuum=true

4.配置nginx

#cd 到项目目录下vim xueyiwang_nginx.conf#新建进入了nginx.conf文件#在英文输入法下,敲i键,进入可插入模式#粘贴以下内容
upstream django {  # server unix:/root/xueyiwang/xueyiwang.sock; # for a file socket  server 127.0.0.1:8001; # for a web port socket (we'll use this first)} # configuration of the serverserver {  # the port your site will be served on  listen   8000;  # the domain name it will serve for  server_name .example.com; # substitute your machine's IP address or FQDN  charset   utf-8;   # max upload size  client_max_body_size 75M;  # adjust to taste   # Django media  location /media {    alias /home/ubuntu/xueyiwang/media; # your Django project's media files - amend as required  }   location /static {    alias /home/ubuntu/xueyiwang/static; # your Django project's static files - amend as required  }   # Finally, send all non-media requests to the Django server.  location / {    uwsgi_pass django;    include  /home/ubuntu/xueyiwang/uwsgi_params; # the uwsgi_params file you installed  }}

5.建立软链接

复制代码 代码如下: sudo ln -s /home/ubuntu/xueyiwang/xueyiwang_nginx.conf /etc/nginx/sites-enabled/

6.手机静态文件

#cd 到项目目录下执行python manage.py collectstatic#yes

7.最后测试

#修改settings.py中DEBUG = Falsecd ~sudo service nginx restart#重启nginx#启动uwsgiuwsgi --ini uwsgi.ini#浏览器访问http://公网ip:8000

复制代码 代码如下:#浏览器访问公网ip+:8000 可以看到,能够正常访问,静态文件和媒体文件都在,说明nginx代理正常。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


  • 上一条:
    Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
    下一条:
    Ubuntu下Anaconda和Pycharm配置方法详解
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在Linux系统中使用Iptables实现流量转发功能流程步骤(0个评论)
    • vim学习笔记-入门级需要了解的一些快捷键(0个评论)
    • 在centos7系统中实现分区并格式化挂载一块硬盘到/data目录流程步骤(0个评论)
    • 在Linux系统种查看某一个进程所占用的内存命令(0个评论)
    • Linux中grep命令中的10种高级用法浅析(0个评论)
    • 近期文章
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2017-07
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-03
    • 2022-04
    • 2022-08
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-06
    • 2023-07
    • 2023-10
    • 2023-12
    • 2024-01
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客