阿里云服务器部署django+vue(ubuntu)

一、 环境安装(教程)

01____python 3.6 安装

https://blog.csdn.net/qq_42693848/article/details/88900553  链接

1、安装配备包

apt-get update

apt-get install python-software-properties

apt-get install apt-file

apt-file update

apt-get install software-properties-common

apt-get install vim

2. python3.6安装

sudo add-apt-repository ppa:deadsnakes/ppa
 出现暂停 按下回车键继续
 
sudo apt-get update

sudo apt-get install python3.6

如果失败则执行

sudo add-apt-repository ppa:jonathonf/python-3.6

sudo apt-get update

sudo apt-get install python3.6

3、设置python优先

sudo update-alternatives --config python

如果展示下面这段内容 说明没有设置优先级
update-alternatives: error: no alternatives for python3 
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2

sudo update-alternatives  --set python /usr/bin/python3.6

4. 设置python的关联版本

python3 
# bash: /usr/bin/python3: No such file or directory
(进入命令:cd /usr/bin1. 打开.bashrc
 	vim ~/.bashrc
 2..bashrc中添加
 	alias python3=python3.6
 	或
 	alias python3='/usr/bin/python3.6'
 3. 保存并退出文件编辑,使配置生效
 	source ~/.bashrc

5. 为python安装对应的pip

curl https://bootstrap.pypa.io/ez_setup.py -o - | python3.6 && python3.6 -m easy_install pip
或者
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" python3 get-pip.py --user

02____mysql 8.0 安装

 链接
https://blog.csdn.net/yzf279533105/article/details/105152525
或者
https://blog.csdn.net/weixin_42209572/article/details/98983741  

03___redis 安装

链接
https://blog.csdn.net/Mikeoperfect/article/details/79468944
或者
https://www.cnblogs.com/wxjnew/p/9189191.html

04___ nginx 安装

https://note.youdao.com/ynoteshare1/index.html?id=9dc0033603b3ecc83f8ae171013a9154&type=notebook#/167F48DDF0224FB3BB5ACDB4B511A534

05___ 虚拟环境 安装

https://blog.csdn.net/qq_41621362/article/details/89606522

06___ uwsgi 安装

https://note.youdao.com/ynoteshare1/index.html?id=9dc0033603b3ecc83f8ae171013a9154&type=notebook#/26B76306708040838EBD06636C9CAFFD

二、进入虚拟环境下载第三方包

# 使用批量下载命令  -i 配置豆瓣源
pip install -r requirements.txt -i https://pypi.douban.com/simple
'''
如果批量下载报错极大可能是三方包版本问题,可以先下载报错的那个包
'''
# 例如 错误信息是django-haystack的错
# 解决:
# 如果是因为setuptools版本过低,就升级版本:
pip install --upgrade setuptools
# 如果升级后依然报错,就安装setuptools-scm
pip install setuptools_scm
# 之后重新安装django-haystack,成功:
pip install django-haystack==2.8.1

=========================================================

# 错误信息是mysqlclient的错
# 1.先安装 客户端程序:
sudo apt install -y mysql-client
# 2.基于python安装mysqlclient需要依次安装以下库:
sudo apt-get install libmysqlclient-dev
sudo apt install libssl-dev 
sudo apt install libcrypto++-dev 
# 3.使用pip安装mysqlclient
sudo pip3 install mysqlclient
# 或者在虚拟环境中用如下命令安装指定版本
pip install mysqlclient==2.0.1
————————————————
版权声明:本文为CSDN博主「小の韩」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46237597/article/details/114110109

  • 1.前端vue需要使用 npm run build 打包成dist文件夹
  • 2.后端django直接拖项目
  • 3.使用文件传输 将前后端项目拖入到服务器中的存放项目的文件夹

3.在服务器上运⾏代码,看是否能直接运⾏起来(排除代码因素导致的部署出错)

4.使⽤uwsgi来部署项⽬(uwsgi,uWSGI,wsgi)配置好uwsgi

# 首先使用pip下载uwsgi包
pip install uwsgi
  • 与项目同目录下创建uwsgi_file文件夹存放uwsgi日志等文件
  • cd进入uwsgi_file文件夹中使用 vi uwsgi.ini 创建并打开uwsgi.ini文件将以下内容粘贴进去,esc + :wq 保存并退出
[uwsgi]
# 使⽤Nginx连接时使⽤,Django程序所在服务器地址和端⼝号
socket=127.0.0.1:3399
#http=172.16.240.177:8000
# 项⽬⽬录绝对路径
chdir=/home/peter/opwf_program/opwf_project/opwf
# 项⽬中wsgi.py⽂件的⽬录,相对于项⽬⽬录
wsgi-file=opwf/wsgi.py
# 进程数(机器核数的1倍)
processes=4
# 线程数
threads=50
# uwsgi服务器的⻆⾊
master=True
# 存放进程编号的⽂件
pidfile=uwsgi.pid
# ⽇志⽂件
daemonize=uwsgi.log
# 指定依赖的虚拟环境
virtualenv=/home/peter/.virtualenvs/opwfenv

三、linux 常用命令

重启 nginx

sudo service nginx reload

启动 nginx

sudo service nginx start

关闭 nginx

sudo service nginx stop

启动 uwsgi

uwsgi --ini uwsgi.ini

关闭 uwsgi

uwsgi --stop uwsgi.pid

查看 nginx/uwsgi 状态

sudo service nginx/uwsgi status

查看 nginx / uwsgi 进程

ps -ef | grep nginx/uwsgi

杀死nginx和uwsgi进程

kill -9 进程号

进入 虚拟环境

workon + 环境名

退出 虚拟环境

deactivate

查看python所有的包

python -m pip list

创建projects的目录

mkdir projects

查看当前目录下的所有文件以及目录

ls

查看哪个程序占用了这个端口号

lsof -i:8000

将占用这个端口号的程序干掉

kill -9+PID 

四、uwsgi 部署


原理如下:
阿里云服务器部署django+vue(ubuntu)_第1张图片
阿里云服务器部署django+vue(ubuntu)_第2张图片


WSGI / uwsgi / uWSGI 这三个概念的区分。

  • WSGI是一种通信协议。通常用户django框架和uWSGI服务器之间通信。(如果说的更细致的话就是用来和Python WSGI model通信)
  • uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。
  • 而uWSGI是实现了uwsgi和WSGI等协议的Web服务器

各模块作用
1、nginx: 是对外的服务器,外部浏览器通过url访问nginx,nginx主要处理静态请求

2、uWSGi: 是对内的服务器,主要用来处理动态请求

3、uwsgi:是一种web协议,接收到请求之后将包进行处理,处理成wsgi可以接受的格式,并发给wsgi

4、WSGI:是python专用的web协议,根据请求调用应用程序(django)的某个文件,某个文件的某个函数

5、django:是真正干活的,查询数据等资源,把处理的结果再次返回给WSGI, WSGI 将返回值进行打包,打包成uwsgi能够接收的格式
6、uwsgi接收wsgi发送的请求,并转发给nginx,nginx最终将返回值返回给浏览器


在远程服务器上输入 ifconfig ------可以看到远程服务器的ip

上传文件
1.文件打包好上传之前修改Django.settings.py里修改:

DEBUG=False
ALLOWED_HOSTS = [" * "]

  1. 修改mysql 和 redis 连接的数据库(目前不是特别懂)
  2. 打包(提前打包好,------ npm run build)
    打包好后会出现一个dist的文件,然后把这个文件放到远程服务器上,当然也可以用Git

用 uWSGI 来启动Django

1:如何使用uWSGI? -------- 用mkdir 建一个自定义文件(专门用来保存uWSGI的一些配置)
这个时候文件是空的,你需要创建一个文件 vi uwsgi.ini 在里面写一些配置
2. 启动uWSGI让它来启动Django------uwsgi --ini uwsgi.ini
3. 关闭uWSGI ------ uwsgi --stop uwsgi.pid

你可能感兴趣的:(阿里云服务器部署django+vue(ubuntu))