前期准备

python3解释器

uwsgi wsgi(web服务网关接口,就是一个实现了python web应用的协议)

virtualenvwrapper

路飞的代码

vue的代码

nginx (一个是nginx对静态文件处理的优秀性能,一个是nginx的反向代理功能,以及nginx的默认80端口,访问nginx的80端口,就能反向代理到应用的8000端口)

mysql

redis 购物车订单信息

supervisor 进程管理工具

1.部署环境准备,准备python3和虚拟环境解释器,virtualenvwrapper
  pip3 install -i https://pypi.douban.com/simple virtualenvwrapper
2.修改python3的环境变量,写入到/etc/profile中
  PATH=/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/ruby/bin/:/root/bin
3.修改~/.bashrc
  写入变量

4.新建一个虚拟环境 s15vuedrf
  mkvirtualenv s15vuedrf

5.准备前后端代码
  wget https://files.cnblogs.com/files/pyyu/luffy_boy.zip
  wget https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip
  如果代码在本地,传到服务器 使用 lrzsz 和xftp工具

6.解压缩代码
  unzip luffy_boy.zip
  unzip 07-luffy_project_01.zip

7.从vue前端代码搞起
  1.准备node打包环境
    wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz
  2.解压缩node包,配置环境变量,使用npm和node命令
  3.检测node和npm
    node -v
    npm -v
  4.安装vue项目所需的包
    cd /opt/s15vuedrf/07-luffy_project_01
    输入npm install
    npm run build
    这两条都正确配置之后,就会生成一个 dist 静态文件目录,整个项目的前端内容和index.html都在这里了
  5.等待nginx加载这个 dist文件夹

部署后端代码所需的环境

1.激活虚拟环境
  workon 进入虚拟环境
2.通过一条命令,导出本地的所有软件包依赖
  pip3 freeze > requirements.txt
3.将这个requirements.txt 传至到服务器,在服务器的新虚拟环境中,安装这个文件,就能安装所有的软件包了
  pip3 install -r requirements.txt
  
这个文件内容如下:项目所需的软件包都在这里了
  [root@web02 opt]# cat requirements.txt
    certifi==2018.11.29
    chardet==3.0.4
    crypto==1.4.1
    Django==2.1.4
    django-redis==4.10.0
    django-rest-framework==0.1.0
    djangorestframework==3.9.0
    idna==2.8
    Naked==0.1.31
    pycrypto==2.6.1
    pytz==2018.7
    PyYAML==3.13
    redis==3.0.1
    requests==2.21.0
    shellescape==3.4.1
    urllib3==1.24.1
    uWSGI==2.0.17.1

4.准备uwsgi 支持高并发的启动python项目(注意uwsgi不支持静态文件的解析,必须用nginx去处理静态文件)
  1.安装uwsgi
    pip3 install -i https://pypi.douban.com/simple uwsgi

  2.学习uwsgi的使用方法
    通过uwsgi启动一个python web文件
    uwsgi --http :8000 --wsgi-file s15testuwsgi.py
    --http 指定http协议
    --wsgi-file 指定一个python文件

    通过uwsgi启动django项目,并且支持热加载项目,不重启项目,自动生效 新的 后端代码

    uwsgi --http :8000 --module s15drf.wsgi --py-autoreload=1

    --module 指定找到django项目的wsgi.py文件

5.使用uwsgi的配置文件,启动项目
  1.创建一个uwsgi.ini配置文件,写入参数信息
    touch uwsgi.ini

配置文件如下

[uwsgi]
# Django-related settings
# the base directory (full path)
#指定项目的绝对路径的第一层路径!!!!!!!!!!!!!!!!!!!!!!!!
chdir = /opt/s15vuedrf/luffy_boy/ # Django's wsgi file
# 指定项目的 wsgi.py文件!!!!!!!!!!!!
# 写入相对路径即可,这个参数是以 chdir参数为相对路径
module = luffy_boy.wsgi # the virtualenv (full path)
# 写入虚拟环境解释器的 绝对路径!!!!!!
home = /root/Envs/s15vuedrf
# process-related settings
# master
master = true
# maximum number of worker processes
#指定uwsgi启动的进程个数
processes = 1 #这个参数及其重要!!!!!!
#这个参数及其重要!!!!!!
#这个参数及其重要!!!!!!
#这个参数及其重要!!!!!!
# the socket (use the full path to be safe
#socket指的是,uwsgi启动一个socket连接,当你使用nginx+uwsgi的时候,使用socket参数
socket = 0.0.0.0:9000 #这个参数是uwsgi启动一个http连接,当你不用nginx只用uwsgi的时候,使用这个参数
#这个参数是uwsgi启动一个http连接,当你不用nginx只用uwsgi的时候,使用这个参数
#这个参数是uwsgi启动一个http连接,当你不用nginx只用uwsgi的时候,使用这个参数
#这个参数是uwsgi启动一个http连接,当你不用nginx只用uwsgi的时候,使用这个参数
#这个参数是uwsgi启动一个http连接,当你不用nginx只用uwsgi的时候,使用这个参数
#http = 0.0.0.0:8000 # ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true

6.使用uwsgi配置文件启动项目
uwsgi --ini uwsgi.ini

supervisor进程管理工具

1.将linux进程运行在后台的方法有哪些
  第一个,命令后面加上 & 符号
  python manage.py runserver &

  第二个 使用nohup命令

  第三个使用进程管理工具

2.安装supervisor,使用python2的包管理工具 easy_install ,注意,此时要退出虚拟环境!!!!
  如果没有命令,使用以下命令,安装
  yum install python-setuptools
  easy_install supervisor

3.通过命令,生成一个配置文件,这个文件就是写入你要管理的进程任务
  echo_supervisord_conf > /etc/supervisor.conf

4.编辑这个配置文件,写入操作 django项目的 命令
  vim /etc/supervisor.conf
  直接到最底行,写入以下配置
  [program:luffyproject]  #项目名
  command=/root/Envs/p1/bin/uwsgi --ini /etc/uwsgi_nginx.ini

   #  首先进入到虚拟环境下cdvirtualenv  进入到虚拟环境的目录在pwd就是路径,后面ini 是自己配置的uwsgi的配置文件路径

5.启动supervisord服务端,指定配置文件启动
  supervisord -c /etc/supervisor.conf

6.通过supervisorctl管理任务
  supervisorctl -c /etc/supervisor.conf

7.supervisor管理django进程的命令如下
  supervisorctl直接输入命令会进入交互式的操作界面
  > stop s15luffy
  > start s15luffy
  > status s15luffy

8.启动luffy的后端代码

nginx静态文件处理

配置nginx步骤如下
  1.编译安装nginx
  2.nginx.conf配置如下

#第一个server虚拟主机是为了找到vue的dist文件, 找到路飞的index.html
  server {
    listen 80;
    server_name 192.168.13.79;
    #当请求来自于 192.168.13.79/的时候,直接进入以下location,然后找到vue的dist/index.html
    location / {
      root /opt/s15vuedrf/07-luffy_project_01/dist;
      index index.html;
      }
    }
#由于vue发送的接口数据地址是 192.168.13.79:8000 我们还得再准备一个入口server
  server {
    listen 8000;
    server_name 192.168.13.79;
    #当接收到接口数据时,请求url是 192.168.13.79:8000 就进入如下location
    location / {
    #这里是nginx将请求转发给 uwsgi启动的 9000端口
    uwsgi_pass 192.168.13.79:9000;
    # include 就是一个“引入的作用”,就是将外部一个文件的参数,导入到当前的nginx.conf中生效
    include /opt/nginx112/conf/uwsgi_params;
    }
  }

3.启动nginx
  ./sbin/nginx 直接启动
此时可以访问 192.168.13.79 查看页面结果

总结:

启动路飞项目,这个项目用的是sqllite,因此安装mysql自行选择

redis必须安装好,存放购物车的数据

Linux之项目的部署的更多相关文章

  1. linux 中文件权限和磁盘管理、linux服务器项目如何部署

    chmod chmod 421 xx.txt //4=r,2=w,1=x df 查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的 df常用参数有 –i -h -k ...

  2. Linux中java项目环境部署,简单记录一下

    这里只是简单的记录一下linux环境下面如何快速的搭配好环境,使你的项目能在linux环境上面运行. 很多时候,我们都是用windows环境进行配置调试的,而真正很多服务器都是在linux服务器上面的 ...

  3. 在linux下用tomcat部署java web项目的过程与注意事项

    在linux下用tomcat部署java web项目的过程与注意事项 一.安装JDK 到http://www.oracle.com/technetwork/java/javase/downloads/ ...

  4. Django项目在linux系统中虚拟环境部署

    1.在linux系统下,安装virtualenv 命令:pip install virtualenv 2.项目部署前的准备 1. Django web project deployment 1.1.  ...

  5. 在linux下用tomcat部署java web项目的过程与注意事项(转)

    在linux下用tomcat部署java web项目的过程与注意事项一.安装JDK到http://www.oracle.com/technetwork/java/javase/downloads/in ...

  6. 【转】前后端分离的项目如何部署发布到Linux

    前后端分离的项目如何部署发布到Linux 前期准备 1.服务器的基本配置信息2.本机远程连接服务器的工具(xshell.xftp或者mobaXterm等等,看你自己喜欢) 第一步:部署环境 1.安装j ...

  7. linux下tomcat的配置及项目的部署流程

    Java的安装配置 1. 在/etc/profile文件中配置相应的信息(如下) export JAVA_HOME=/usr/java/jdk1.6.0_20 export JRE_HOME=/usr ...

  8. mosquitto在Linux环境下的部署/安装/使用/测试

    mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. ...

  9. 阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器

    一.前言 Git是目前优秀和流行的源代码管理工具.而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费.而公司出于商业化等目的需要搭建自己的源代码托管服务器.通过网上了解Gog ...

随机推荐

  1. python爬虫中XPath和lxml解析库

    什么是XML XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 的标签需要 ...

  2. Python3基础 yield 创建生成器

             Python : 3.7.3          OS : Ubuntu 18.04.2 LTS         IDE : pycharm-community-2019.1.3    ...

  3. Ubuntu新建用户并指定目录

    例如我要新建一个nginx用户,并指定目录,允许使用bash登录 sudo useradd -d "/home/nginx" -m -s "/bin/bash" ...

  4. [LeetCode] 199. Binary Tree Right Side View 二叉树的右侧视图

    Given a binary tree, imagine yourself standing on the right side of it, return the values of the nod ...

  5. NB-IOT技术学习问题记录

    1. TAU是什么,跟踪区更新 2. 小区和基站的区别 3. 附着和设备注册的关系? 4. 不携带PDN是什么意思? 5. PLMN 公共陆地移动网络,和小区的关系,区别?

  6. 流程图软件Microsoft Visio

    简介 Visio是一款能处理复杂信息.系统和流程进行可视化.分析和交流的软件,从“office 2003”以后,Visio作为一个单独软件发行,不再集成于office办公软件. 下载安装 官方下载最新 ...

  7. Spring boot使用Aspose.Slides操作ppt转PDF、转图片

    最近要将ppt转为PDF和图片,Apache poi ,jacob都试了下 Apache poi 转图片乱码,处理了,还会存在部分乱码 jacob对系统依赖比较大,必须是windows还得安装MS O ...

  8. OpenSSL 创建自签名证书

    1.生成服务器私钥 openssl genrsa -out client.key 4096   2.生成证书签名请求(CSR) openssl req -new -key client.key -ou ...

  9. [转]NGINX-检测客户端是通过电脑还是移动设备访问的,将请求重定向到适配的WEB站点

    原文地址:https://blog.51cto.com/10978134/2163757 检测客户端是通过电脑还是移动设备访问的,将请求重定向到适配的WEB站点 此配置方法由Detect Mobile ...

  10. 嵌入式qt显示中文和隐藏鼠标

    最近项目快接近尾声了,要把项目移植到板子上,但是板子上的系统没有安装字库,导致中文无法显示,并且有一个很讨厌的鼠标光标(又没有鼠标),上网找了一些解决方案,记录一下 qt显示中文: 如果你急于在ARM ...