部署CRM项目

前言

项目部署

准备工作

1 将项目上传到服务器上

  1. 方法一:使用xftp工具,进项上传文件夹,将项目代码,传到linux服务器当中

    1. 这个页面操作,实在不会百度
  2. 方式2: 使用scp从本地将文件上传到linux服务器中

    1. scp -r 本地文件夹 远程用户名@远程ip:远程文件夹/

2 将mysql数据迁移到服务器数据库

  • 服务器端安装mysql(mariadb)数据库链接:https://www.cnblogs.com/yuncong/p/10253215.html

  • 数据导入导出

    1. linux服务端,mysql,导入knight的数据
    2. 1.mysql数据的导出,与导入
    3. 这个命令是在linux/windows中敲的
    4. mysqldump -u root -p --all-databases > knight.dump
    5. 2.上传这个数据文件到linux数据库中
    6. 3.linuxmysql,导入这个数据文件
    7. mysql -uroot -p < /opt/knight.dump
  • 注意:linux的数据库,需要对root用户设置远程链接的权限

    1. grant all privileges on *.* to root@'%' identified by 'redhat';
    2. # 授权所有的权限,在所有库,所有表 对 root用户在所有的主机上, 权限密码为redhat, 注意是自己设置的密码
    3. # 刷新授权表
    4. flush privileges;
  • 注意2:linux的防火墙要给关闭,否则windows去链接linux的3306端口可能被拒绝

    1. centos7默认已经使用firewall作为防火墙了
    2. 1.关闭防火墙
    3. systemctl status firewalld #查看防火墙状态
    4. systemctl stop firewalld #关闭防火墙
    5. systemctl disable firewalld#关闭防火墙开机启动
    6. systemctl is-enabled firewalld.service#检查防火墙是否启动

1. 激活虚拟python环境

  1. 激活环境后,cd到项目目录下

    • 可以使用pip freeze模块迁移

      • 生成项目依赖模块

        1. # 在本地
        2. pip freeze >requirements.txt
      • 在虚拟环境中

        1. pip install -r C:\Users\Administrator\requirements.txt
        2. # pip install -r 路径
    • 启动django项目

      1. python3 manage.py runserver 0.0.0.0:8000

      启动项目注意的问题,根据报错进行下载相应的模块,

      项目中settings.py中俩个关键位置记得更改:

      1. # 这个参数
      2. ALLOWED_HOSTS = ['*']
      3. # 数据库连接参数
      4. DATABASES = {
      5. 'default': {
      6. 'ENGINE': 'django.db.backends.mysql',
      7. 'NAME': "crm",
      8. "HOST": "127.0.0.1",
      9. "PORT": 3306,
      10. "USER": 'root',
      11. "PASSWORD": '123'
      12. }
      13. }
    • 启动成功之后退出, 这里只是为了测试项目

2 安装uwsgi

  • 安装

    1. pip3 install uwsgi
  • 1 通过uwsgi启动django项目(注意这里要在项目目录下)

    1. uwsgi --http :8000 --module knight.wsgi
  • 2 使用uwsgi.ini配置文件来启动项目,这个文件要自己创建,随意放在哪,我这里是放在项目目录中的

    1. # 新建uwsgi.ini
    2. touch uwsgi.ini
    3. # 查看
    4. ls uwsgi.ini

    编辑uwsgi.ini,注意编辑中的路径之类的数据要进行更改

    1. [uwsgi]
    2. # Django-related settings
    3. # the base directory (full path)
    4. #写上项目的绝对路径
    5. chdir = /opt/knight
    6. # Django's wsgi file
    7. #填写找到django的wsgi文件,填写相对路径,以chdir参数为相对路径
    8. module = knight.wsgi
    9. # the virtualenv (full path)
    10. #填写虚拟环境的绝对路径
    11. home = /root/Envs/knight/
    12. # process-related settings
    13. # master
    14. #启动uwsgi主进程
    15. master = true
    16. # maximum number of worker processes
    17. processes = 5
    18. #如果你使用了nginx,做反向代理,必须填写socket链接,而不是http参数
    19. # the socket (use the full path to be safe
    20. #socket = 0.0.0.0:8000
    21. #如果你不用nginx,直接使用uwsgi,运行一个http服务端,就用这个http参数
    22. http = 0.0.0.0:8000
    23. # ... with appropriate permissions - may be needed
    24. # chmod-socket = 664
    25. # clear environment on exit
    26. vacuum = true

    指定配置文件启动uwsgi

    1. uwsgi --ini uwsgi.ini

    启动之后可以通过网址进行访问了

3 配置nginx

  • 作用: 使用ngixn处理django的静态文件
  1. 设置django的静态文件目录,收集一下

    修改项目中settings.py,写下如下参数

    1. STATIC_ROOT= '/opt/static' #该路径根据实际放置
  2. 使用命令收集django的静态文件

    1. python manage.py collectstatic
  3. 查看django的静态文件收集目录

    1. ls /opt/static
  4. 配置nginx,进行反向代理,找到uwsgi项目,且配置nginx处理uwsgi的静态文件

    编辑nginx.conf

    1. server {
    2. listen 80;
    3. #域名qishijd.com
    4. server_name qishijd.com;
    5. #只要用户访问qishijd.com:80/ 就走这个location匹配>,反向代理给uwsgi:
    6. location / {
    7. include uwsgi_params;
    8. uwsgi_pass 0.0.0.0:8000;
    9. }
    10. #当用户请求是qishijd.com/static/的时候
    11. #就会进入这个location匹配
    12. #通过alias参数进行路径别名,让nginx去/opt/static底下去找静>态资源
    13. location /static {
    14. alias /opt/static;
    15. }
    16. }

  5. 配置完成后启动uwsgi,重启nginx,

注意问题

  1. 在浏览器上输入网址后,数据不加载,可能原因

    1. #如果你使用了nginx,做反向代理,必须填写socket链接,而不是http参数
    2. # the socket (use the full path to be safe
    3. #socket = 0.0.0.0:8000
    4. #如果你不用nginx,直接使用uwsgi,运行一个http服务端,就用这个http参数
    5. http = 0.0.0.0:8000

    这俩只选一个

  2. 本地域名添加

    1. 在本地编辑
    2. vim /etc/hosts
    3. # 加载你nginx.conf中这个参数对应的域名
    4. # server_name qishijd.com; 格式为
    5. 192.168.11.11 qishijd.com
    6. # 保存退出

进程管理工具superviosr

  • 注意

    使用python2的模块管理工具,去下载supervisor ,注意此时,退出虚拟环境

    使用python2的模块管理工具,去下载supervisor ,注意此时,退出虚拟环境

    使用python2的模块管理工具,去下载supervisor ,注意此时,退出虚拟环境

    使用python2的模块管理工具,去下载supervisor ,注意此时,退出虚拟环境

    使用python2的模块管理工具,去下载supervisor ,注意此时,退出虚拟环境

  • 安装supervisor

    1. yum install python-setuptools
  • 安装

    1. easy_install supervisor
  • 使用supervisor命令,生配置文件

    1. echo_supervisord_conf > /etc/supervisor.conf
  • 在这个配置文件中加入我们想要管理的任务

    1. vim /etc/supervisor.conf
    2. # 在底部写入如下配置
    3. #定义一个任务,名字自定义
    4. #commnad=参数,定义我们启动项目的命令
    5. [program:crm_knight]
    6. command=/root/Envs/knight/bin/uwsgi /opt/knight/uwsgi.ini
    7. stopasgroup=true ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
    8. killasgroup=true ;默认为false,向进程组发送kill信号,包括子进程
  • 通过配置文件启动supervisor服务

    1. supervisord -c /etc/supervisor.conf
  • 启动了supervisor服务端后,管理任务

    1. supervisorctl -c /etc/supervisor.conf
  • 任务管理命令如下:有两种,一个是交互式,一个是参数形式

    1. 参数形式

      1. supervisorctl -c /etc/supervisor.conf stop/start/restart all
      2. supervisorctl -c /etc/supervisor.conf start crm_knight
    2. 交互式形式

      1. supervisorctl -c /etc/supervisor.conf

部署 Nginx +uwsgi+centos7+django+supervisor 项目的更多相关文章

  1. debian完整部署 Nginx + uWSGI + Django

    手工部署一个Django服务器真心不容易,需要安装很多东西.从头开始搭建服务器,主要是为了梳理一下后续开发中一般为碰到的平台部署.对后续问题的解决有一定帮助. 通常部署有2中方式: 一种是使用现成提供 ...

  2. CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点 以下 ...

  3. nginx + uWSGI 为 django 提供高并发

    django 的并发能力真的是令人担忧,这里就使用 nginx + uwsgi 提供高并发 nginx 的并发能力超高,单台并发能力过万(这个也不是绝对),在纯静态的 web 服务中更是突出其优越的地 ...

  4. 学习VirtualEnv和Nginx+uwsgi用于django项目部署

    以下叙述中用到的操作系统:Linux CentOS 6.X. 最近几天了解一下VirtualEnv,Apache+Daemon mode,Nginx+uwsgi的概念,并且在项目中实验性部署了一下(目 ...

  5. Django 部署(Nginx+uwsgi)

    使用 uwsgi 来部署 安装 uwsgi sudo pip install uwsgi --upgrade 使用 uwsgi 运行项目 uwsgi --http :8001 --chdir /pat ...

  6. nginx+uwsgi启动Django项目

    1.安装项目环境 系统环境:ubuntu16.04 python环境:python3.5.2 Django版本:django1.11.7 nginx环境:nginx_1.10.3 虚拟环境:virtu ...

  7. Nginx+uWSGI+Python+Django构建必应高清壁纸站

    写在前面 做这个网站的初衷是因为,每次打开必应搜索搜东西的时候都会被上面的背景图片吸引,我想必应的壁纸应该是经过专业人员精选出来的,我甚至会翻看以前的历史图片,唯一美中不足的是必应的首页只能查看最多7 ...

  8. (转)nginx uwsgi wsgi django 这些东西究竟是什么关系

    有太多的文章告诉我们nginx uwsgi django 这些东西怎么用了,太多的人知道这些东西的怎么使用,怎么配置,怎么优化,但是还是有一部分人比如我这种水货不知道这些东西到底是啥,为啥一个项目的发 ...

  9. nginx uwsgi wsgi django 这些东西究竟是什么关系

    有太多的文章告诉我们nginx uwsgi django 这些东西怎么用了,太多的人知道这些东西的怎么使用,怎么配置,怎么优化,但是还是有一部分人比如我这种水货不知道这些东西到底是啥,为啥一个项目的发 ...

随机推荐

  1. 巧用python进行接口自动化测试

    一.接口自动化测试的流程 1.需求分析 1.1请求(url,方法.数据) 2.挑选需要做自动化测试的接口 3.设计自动化测试用例 4.搭建自动化测试环境 5.设计自动化执行框架(报告.参数化. 用例执 ...

  2. 联邦学习:按Dirichlet分布划分Non-IID样本

    我们在<Python中的随机采样和概率分布(二)>介绍了如何用Python现有的库对一个概率分布进行采样,其中的dirichlet分布大家一定不会感到陌生.该分布的概率密度函数为 \[P( ...

  3. 10、架构--keepalive、四层负载均衡

    笔记 1.晨考 1.HTTPS的作用,怎么实现的呢? 2.全栈部署HTTPS 只需在代理中部署HTTPS 3.反向代理 BBS 步骤 1.部署WEB机器 2.部署代理 4.如果 LB01 宕机了,怎么 ...

  4. 开源GenICam项目上手-1

    GenICam 说明 一个统一的编程规则,这样我们只需要一个应用软件,就可以支持符合标准的不同型号相机,当我们升级相机.更换相机时,不需要编写不同的软件代码. The goal of GenICamT ...

  5. Spring 类名后缀理解

    Aware 理解 实现Spring的Aware接口. 定义为感知.意识,核心意义在于通过Aware可以把spring底层组件注入到自定义的bean中. 对于bean与容器的关系,bean不应该知道自身 ...

  6. tomcat启动错误:Error running 'Tomcat 9.0.34': Address localhost:1099 is already in use

    解决方法博客地址:https://blog.csdn.net/weixin_46697202/article/details/105782670

  7. 微服务从代码到k8s部署应有尽有系列(十一、日志收集)

    我们用一个系列来讲解从需求到上线.从代码到k8s部署.从日志到监控等各个方面的微服务完整实践. 整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中 ...

  8. JZ-051-构建乘积数组

    构建乘积数组 题目描述 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1]. ...

  9. JZ-014-链表中倒数第 K 个结点

    链表中倒数第 K 个结点 题目描述 输入一个链表,输出该链表中倒数第k个结点. 题目链接: 链表中倒数第 K 个结点 代码 /** * 标题:链表中倒数第 K 个结点 * 题目描述 * 输入一个链表, ...

  10. 矩池云 | 新冠肺炎防控:肺炎CT检测

    连日来,新型冠状病毒感染的肺炎疫情,牵动的不仅仅是全武汉.全湖北,更是全国人民的心,大家纷纷以自己独特的方式为武汉加油!我们相信坚持下去,终会春暖花开. 今天让我们以简单实用的神经网络模型,来检测肺炎 ...