**

谨以此篇文章献给那些像我一样,对于linux系统服务器一脸懵逼的朋友们!懵逼不要怕,胆大心细耐心,不行就重置服务器,从头再来.

**
*最近抢了一个月的华为云服务器,没事就开始折腾,华为云能使用的镜像很多,刚试过了centos7,最开始用的是centos8结果连yum安装个软件都搞不定.果断换成了7,在前一篇文章已有介绍.centos的稳定众所周知,就是包都太陈旧,自己编译安装,问题多多,累觉不爱,所以决定再测试下ubuntu作为服务器的配置,不试不知道,试完了才知道真香,ubuntu自带的python版本居然是3.8,果然比较年轻化,一套配置下来简直行云流水.原谅我无耻的凑字数.*附上deepin系统截图:
漂亮的不要不要的,就是内存烧的狠,16g用了一半吧.

安装流程如下:

  1. 如果是win10,最好安装openssh进行远程管理,由于我目前用的是deepin系统,就不用安装了,需要安装的小伙伴,可以看我上一篇文章,里面有链接地址.点击直达centos配置文章

  2. 通过ssh连接服务器,更新系统.

  3. 安装django,pillow库,副文本插件django-ckeditor,数据库操作模块mysqlclient,uwsgi,

  4. 上传本地项目文件.

  5. 安装mysql,配置数据库密码,连接django测试是否联通.数据库迁移.

  6. 配置uwsgi,安装nginx并配置,测试连通性.

  7. 项目布置完成.

首先说明本人并不十分精通linux系统的操作,只能说是新手,所以这篇文章会更倾向于,像我一样的,搞完了服务器就一脸懵逼的朋友们.
首先通过ssh连接远程服务器
连接命令为:ssh 登陆用户名@服务器ip
第一次连接会让你确认,然后输入密码.之后就进入到服务器
不管三七二十一,先升级系统,输入以下命令

apt update
apt upgrade

一顿输出之后,我们需要配置pip换源.因为官方源实在太慢

#建立文件夹在root目录下建立.pip文件夹
mkdir /root/.pip

之后在本地新建一个文本文件pip.conf里面内容如下:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn

接下来重点来了,我们没有安装ftp服务,但是我们可以用ssh的scp命令把本地文件上传到服务器.要重新开一个shell哦,因为我们是在本地操作.

scp 本地文件路径 服务器用户名@服务器ip:服务器目的地址

经过以上操作pip换源完成,下一步更新pip,需要登陆到服务器操作.命令如下:

python3 -m pip install --upgrade pip

更新完成,安装django,uwsgi,pillow,django-ckeditor,mysqlclient

pip3 install django
pip3 install django-ckeditor
pip3 install pillow
pip3 install uwsgi

以上都非常顺利,但是在centos配置的时候,就需要安装好多依赖才行,可见乌班图还是很适合小白的.
安装mysqlclient模块用于连接mysql数据库
必须按照下方两步安装否则会报错,坑我已经踩过了

apt install libmysqlclient-dev
pip3 install mysqlclient

至此python,和djago需要的模块我们全部安装完成,接下来安装nginx,mysql
一步搞定.

apt install nginx
apt install mysql-server

配置mysql
虽然我们是小白,但是基于基础的安全性,我们还是要配置一下mysql
输入以下命令

mysql_secure_installation

以上摘自<linux就该这么学>该书不错,通俗易懂,在此推荐一下!!

接下来是重点,成败在此
首先在服务器建立一个项目文件夹,然后我们在本地通过scp命令,把项目文件夹上传至服务器.
服务器端:

mkdir /home/www

本地端
进入我们的项目文件夹,新建文件uwsgi.ini,为了方便配置,我们现在本地把uwsgi配置好,在新建一个nginx配置文件django.conf,然后一次性上传至服务器.
uwsgi.ini配置内容如下

[uwsgi]
socket = 127.0.0.1:8001#建立与nginx的通讯端口
chdir = /home/www/shopsite#项目在服务器上的完整路径
wsgi-file = shopsite/wsgi.py#相对于chdir我们wsgi.py文件的路径
module = shopsite.wsgi#把上面的/换成'.'就行
master=true#不用也没事
processes = 4#开启进程数
threads = 2#开启线程数
pidfile=uwsgi.pid
daemonize=uwsgi.log
vacuum = true
log-maxsize=50000000
disable-logging=true
static-map = /static=/home/www/shopsite/static
#uid=
#gid=

关于uwsgi的配置,下面两篇文章讲解的比较细致:
https://blog.csdn.net/qq_36564503/article/details/106449315
https://www.cnblogs.com/mensiler/p/11889546.html

接下来编写nginx的配置文件django.conf内容如下:

server {listen 80;#监听端口server_name  122.112.204.124;#服务器地址,也可以是域名charset utf-8;client_max_body_size 75m;location /media {alias /home/www/shopsite/media;#上传用的文件夹,}location /static {alias /home/www/shopsite/static;#静态文家家}
location / {uwsgi_pass 127.0.0.1:8001;#此处要和uwsgi.ini的socket一样include /etc/nginx/uwsgi_params;}
}

以上配置完成,下面需要修改django的settings.py,部署生产环境,一个是把debug改成False,一个是连接数据库的用户名密码配置,以下为修改部分:

DEBUG = TrueALLOWED_HOSTS = ["*"]DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'django_db',"USER":"root","PASSWORD":"此处填写你设置的密码","HOST":"127.0.0.1","PORT":"3306",}
}

至此准备工作完成,通过scp命令把项目文件夹整体上传至服务器
在本地执行如下命令,注意替换成你的项目文件夹路径,

scp -r /home/burn/Downloads/shopsite root@122.112.204.124:/home/www

切换到服务器,进入已经上传完成的项目文件夹下

cd /home/www/shopsite

执行数据库迁移,收集静态文件,

python3 manage.py collectstatic
python3 manage.py makemigrations

**

不出意外的会出错

**
由于mysql5.7以上加密方法变成了cha2,我们还需要配置一下改回原来的方式,否则我们mysqlclient无法操作mysql.所以出现了错误,没关系我们来解决一下
输入一下命令进入mysql的shell

mysql -u root -p

注意newpassword部分换成你的数据库密码,别忘了最后的分号

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';

然后刷新权限,退出

FLUSH PRIVILEGES;
exit

然后继续未完成的操作,应该就很顺利了

python3 manage.py makemigrations
python3 manage.py migrate

在我们项目文件夹下,也就我们刚才建立uwsgi.ini的位置,执行以下命令

uwsgi uwsgi.ini#用配置文件启动uwsgi

把nginx的配置文件,按照要求拷贝到nginx的配置文件夹下

cat /etc/nginx/nginx.conf
接着是一大堆输出,注意这个http部分
http {#这里的conf.d就是我们的配置文件需要放入的目的地址**include /etc/nginx/conf.d/*.conf;**include /etc/nginx/sites-enabled/*;
}

接着把已经写好的nginx配置文件拷贝进该文件夹

cp django.conf /etc/nginx/conf.d
nginx -t #拷贝完成,运行下测试,是否通过

成功会输出:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
支持基本配置完成,下面收尾工作

killall -9 nginx#杀死所有nginx进程
systemctl start nginx#启动nginx
systemctl enable nginx#设置开机启动
systemctl enable mysql#mqsql开机启动

现在在浏览器输入服务器ip地址已经可以访问.
剩下的配置就是,优化服务器,配置防火墙,端口,或者可以安装ftp服务方便上传文件,更新应用,写一个自动备份数据库的脚本,等等.
遇到问题多搜索,不断尝试,掌握基本的一些linux命令.相信你会越來越棒!


如果走之前能给点个赞,那就更好了,发财的小手走起啊!!


Ubuntu 20.04 server乌班图服务器部署django,uwsgi,mysql,nginx细节相关推荐

  1. Ubuntu 20.04 server 安装

    Ubuntu 20.04 server 安装 前面我们介绍了 Ubuntu Desktop 版本的安装,今天我们来看看 Ubuntu server 版本的安装.Ubuntu Server 版本的安装和 ...

  2. ubuntu系统怎么安装ssh服务器配置,如何在Ubuntu 20.04 LTS上安装SSH服务器

    Terminal Linux Logo 在 步骤1.首先,通过apt在终端中运行以下以下命令,确保所有系统软件包都是最新的. sudo apt update sudo apt upgrade 步骤2. ...

  3. 云Ubuntu 20.04 系统下 erpnext v13 安装部署(图文并茂按步骤基本成功)

    本文基于京东云,Ubuntu 20.04 ,系统安装 本文全程使用"FinalShell SSH"   "Noepad++" 工具 一.使用ssh登录京东云 ( ...

  4. ubuntu 20.04 kylin gpg: 从公钥服务器接收失败:Server indicated a failure 解决方法

    ​​​​​​执行如下命令 sudo apt-key adv --keyserver keyserver.ubundu.com --recv-keys EB3E94ADBE1229CF 显示下面的错误: ...

  5. ubuntu linux安装控制面板,在Ubuntu 20.04上安装Ajenti控制面板的方法

    本文介绍在Ubuntu 20.04服务器上安装Ajenti控制面板的方法,下面介绍的安装方法最大的好处是它完全自动化的. 一.更新Ubuntu 20.04系统 确保您正在全新安装Ubuntu 20.0 ...

  6. 如何在Ubuntu 20.04上设置和配置证书颁发机构(CA)

    介绍 (Introduction) A Certificate Authority (CA) is an entity responsible for issuing digital certific ...

  7. 如何在Ubuntu 20.04上安装和使用TimescaleDB

    The author selected the COVID-19 Relief Fund to receive a donation as part of the Write for DOnation ...

  8. 如何在Ubuntu 20.04上设置Mattermost

    介绍 (Introduction) Mattermost is an open source collaboration and messaging platform created with sec ...

  9. ar.drone2.0_如何在Ubuntu 20.04上安装和配置Drone

    ar.drone2.0 介绍 (Introduction) Drone is an open-source container-native CI/CD platform written in Go. ...

  10. fossa网络库_如何升级到Ubuntu 20.04 Focal Fossa

    fossa网络库 介绍 (Introduction) The Ubuntu operating system's latest Long Term Support (LTS) release, Ubu ...

最新文章

  1. leetcode算法题--Jump Game II
  2. HDU4473_Exam
  3. 常用系统存储过程有:
  4. magento php 所需模块,magento博客 - Magento2 创建基本模块
  5. linux6.5如何打开ftp服务,CentOs6.5上快速搭建ftp服务器
  6. (1)FPGA面试技能提升篇(SystemC)
  7. try catch finally return之间的关系
  8. html语言设计表单实例,40多个漂亮的网页表单设计实例_HTML/Xhtml_网页制作
  9. Sqlmap使用教程【超全】
  10. 写出Oracle分页语句,Oracle分页语句
  11. Internet Explorer 包含五个预定义区域
  12. 绿联 蓝牙适配器 linux,绿联USB
  13. APP上传照片后台实现方法
  14. 逆向破解——和什么叫渗透
  15. 1.22-1.23板卡调试日志
  16. ubuntu python3.5安装_ubuntu12.04安装python3.5及pip3和setuptools
  17. js点击轮播或者自动轮播图代码
  18. 帝国时代2决定版服务器证书身份验证失败,《帝国时代2决定版》常见问题解决方法介绍 常见问题怎么解决...
  19. js获取随机数与随机颜色函数的简单封装
  20. 小学第三册上计算机wps教案,《初始WPS》教学设计——溧阳市横涧小学  夏春芳...

热门文章

  1. 关于pandas的这些干货,你也必须知道!
  2. On-premise是什么意思?
  3. 关于柔性显示器工作原理及发展前景的探究
  4. 用 Python 制作商品历史价格查询,别踩坑!
  5. Windows神软Classic Shell停更!经典开始菜单永别了
  6. word中“项目符号”和后面的文字间隔太远
  7. 【Python爬虫】-从入门到入门-个人技术经验汇总-【爬虫和数据】
  8. windbg调试kvm windows虚机
  9. 最强蜗牛服务器维护要多久,最强蜗牛转服需要什么条件
  10. 为魅族助攻,联发科发布Helio P25处理器