linux crm部署流程

linux 基础配置

python3的linux环境编译安装
1.linux下安装软件的方式
    -首选yum工具,方便,自行解决软件之间的依赖关系,自动下载且安装
        1.配置yum源(就是一个软件仓库,里面放了一堆rpm软件包)
            可以选择阿里云源,清华yum源
            配置第一个仓库,里面有大量系统常用软件
                wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
            还得配置第二个仓库,携带大量第三方软件(nginx,redis,mongodb,mairadb等)
                wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

        2.你得了解yum的仓库目录
            cd  /etc/yum.repos.d/       #在这个目录第一层的repo文件就会被识别问yum软件仓库
            
        3.清空yum缓存,清空centos官方的yum软件缓存
        
        yum clean all  
        
        4.生成新的阿里云的yum缓存
        yum makecache  
        
        -wget 在一个资源url的命令
        -apt-get ubuntu底下的yum
        
    -使用yum仓库,不仅仅可以使用第三方的yum仓库,还是可以指定官方的yum源(好比mariadb数据库的官方yum源,软件包最新)
    
        
    -rpm手动安装,得处理依赖关系
    
    -自由选择版本,且可以扩展第三方功能的安装方式,叫做源码编译安装
View Code

查看依赖模块

pip3 freeze > requirements.txt
#这个  requirements.txt文件是python程序员都认识的模块依赖文件

 

 

第一步.启动mariadb数据库

  1. 配置yum源
    1.yum
      配置yum源
      yum install  mariadb-server  mariadb -y  
        
    2.通过yum安装的软件,怎么启动
       systemctl  start  mariadb
       # systemctl  start/stop/status/restart mariadb  
        
    3.登陆数据库
       cmd登录
     
  2. 导出windows的数据库,导入给linux机器
    cmd登录导出命令
    mysqldump  -uroot -p  se_crm >  se_crm.sql  #指定数据库导出到se_crm.sql这个数据文件中
    
    传输到linux中,进行导入
    简单的利用 lrzsz工具传输
    或者下载xftp工具
    
    导入数据的命令 
    mariadb安装
    yum install mariadb-server
    
    
    方式1:
    1.创建一个se_crm数据库
    create  database  se_crm; 
    #导入数据的命令  
    mysql -uroot -p  se_crm <  /opt/se_crm.sql   #指定se_crm数据库,导入一个sql文件 
    
    方式2:
    登陆数据库之后,用命令导入数据
        1.创建一个se_crm数据库
            create  database  se_crm; 
        2.切换数据库
            use  se_crm;
        3.读取sql文件,写入数据集
          mareiadb>    source /opt/se_crm.sql; 
    
    

第二步:准备python3环境,以及虚拟环境 

  1. 编译安装python3,解决环境变量
    centos7下编译安装python3的方式
    1.必须解决编译所需的基础开发环境
            yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
        2.下载python3的编代码包      
        解压缩 
            wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
            xz -d Python-3.6.7.tar.xz
            tar -xf Python-3.6.7.tar
        
        4.进入解压缩生成的源码文件夹
            cd  Python-3.6.7
        
        5.执行编译三部曲的命令
            第一曲:找到一个[配置的可执行文件,configure  ],执行它,且指定软件安装位置
            ./configure    --prefix=/opt/python367/
                
            第二曲:在上一步,会生成一个makefile,编译安装,在linux下必须用gcc工具去编译,使用的命令时make
            make 
            第三曲:这一步是执行安装,会生成一个/opt/python367文件夹,可用的解释器都在这里了
            make install  
        
        6.配置环境变量,便于快捷使用python3
            1.先获取当前的PATH变量,然后把python3的bin目录加进去
            echo $PATH  
            /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
    
            2.永久修改PATH的值
                -第一个是软连接
                -直接修改/etc/profile ,系统全局的配置文件,每个用户在登陆系统的时候,都会加载这个文件 
            vim /etc/profile
            写入新的PATH变量
            
            PATH="/opt/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin"
         
            
            3.还得重新登陆,或者手动读取这个/etc/profile  
               source /etc/profile  #让这个文件中的变量生效
    View Code
  2. 下载virtualenvwrapper工具
    virtualenvwrapper ,升级版的虚拟环境工具 
    1.安装  ,不要激活虚拟环境 
    pip3 install -i https://pypi.douban.com/simple    virtualenvwrapper  
    
    
    2.修改配置文件,每次开机就加载 virtualenvwrapper  这个工具
    
        1.打开一个用户个人的环境变量配置文件
        全局配置文件 /etc/profile  #每个用户登陆都生效
        用户个人配置文件 ~/.bash_profile  
        
        vim  ~/.bash_profile #root在登陆的时候,会读取这个文件中的代码 
        
        2.填入如下信息,针对你自己的python环境修改
        
            export WORKON_HOME=~/Envs   #设置virtualenv的统一管理目录
            export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'   #添加virtualenvwrapper的参数,生成干净隔绝的环境
            export VIRTUALENVWRAPPER_PYTHON=/opt/python367/bin/python3.6      #指定python解释器
            source /opt/python367/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本
            
        3.此时可以使用这个工具,快捷的创建虚拟环境
        
            mkvirtualenv  虚拟环境名          #创建虚拟环境 
            lsvirtualenv                 #列出虚拟环境的名字 
            workon   虚拟环境名字         #激活或切换虚拟环境  
            lssitepackages               #列出虚拟环境中的模块信息,其实就是 
            cdvirtualenv                 #进入虚拟环境家目录 
            cdsitepackages              #进入虚拟环境第三方模块目录 
     
    View Code
  3. 使用mkvirtualenv命令,创建新的虚拟环境,用于启动crm
    mkvirtualenv  s23_crm
  4. 拷贝crm代码,到linux机器
    rz    # 讲crm项目压缩包拖到linux,
    # 解压
  5. 解决crm运行所需的依赖环境,django等模块,以及pymysql
    解决办法1:
    笨办法,一个个报错去看,去解决 
        pip3 install -i https://pypi.douban.com/simple django==1.11.23
        pip3 install -i https://pypi.douban.com/simple pymysql
        pip3 install -i https://pypi.douban.com/simple django-multiselectfield
        pip3 install -i https://pypi.douban.com/simple django==1.11.23
    
    不那么笨的办法:
    导出python解释器模块的命令 
    pip3 freeze > requirements.txt    #这个  requirements.txt文件是python程序员都认识的模块依赖文件
    
    安装这个requirements.txt文件中所有的模块 
    
    pip3 install -r requirements.txt  #指定依赖文件安装,读取文件中所有的模块信息

 

第三步:安装uwsgi

 

1.通过pip3安装
pip3 install -i https://pypi.douban.com/simple   uwsgi 
2.通过uwsgi命令去启动django
  [uwsgi]
  # Django-related settings
  # the base directory (full path)
  # 填写crm项目的绝对路径,第一层 
  chdir = /opt/crms23/se_crm

  # Django's wsgi file 
  #填写crm项目第二层目录中的wsgi文件 
  module = se_crm.wsgi

  # the virtualenv (full path)
  #填写解释器的安装绝对路径(虚拟环境)
  home = /root/Envs/s23_crm


  # process-related settings
  # master
  master = true
  # maximum number of worker processes
  #指定uwsgi的多进程数量,指定为cpu的核数即可(填cpu的4倍数量)
  processes = 4


  # the socket (use the full path to be safe
  #指定crm启动的协议,当你和nginx结合进行反向代理,就用unix-socket协议 ,这种方式无法直接访问,只能通过nginx反代
  socket = 0.0.0.0:8000

  #指定http协议启动,不安全,没有意义,只是自己调试使用
  #http = 0.0.0.0:8000


  # ... with appropriate permissions - may be needed
  # chmod-socket = 664
  # clear environment on exit
  vacuum = true

  指定uwsgi.ini配置文件启动

  uwsgi --ini uwsgi.ini # 参数 --ini是指定文件的意思

  3.收集django的所有静态文件,丢给nginx去处理
  打开 django的settings.py,修改为如下行
  STATIC_ROOT='/opt/crms23/crmstatic/' #加上这个参数就行了 
  STATIC_URL = '/static/'
  STATICFILES_DIRS = [
  os.path.join(BASE_DIR, 'static')
  ]

  通过命令收集django的所有静态文件
  python3 manage.py collectstatic

 

 

第四步:启动nginx,配置反向代理

1.安装nginx 
    1.yum安装
    yum install nginx -y  #自动安装到某个目录,可以通过 rpm  -ql nginx  #进行查询安装 
    
    2.rpm安装,不推荐
    3.源代码编译安装 
2.修改配置文件 nginx.conf  ,
注意server{}多虚拟主机是自上而下的加载顺序
因此修改第一个server{}虚拟主机,修改为如下反代的写法

且添加nginx处理django的静态文件方式
        server {
            #nginx监听的地址 
            listen       80;
            #定义网站的域名
            server_name  www.s23lol.com;

            #charset koi8-r;
            #nginx的url匹配 , /这个斜杠就代表这样的请求:  192.168.13.117:85/   
            #这个是最低级匹配,所有的请求都会进入location,进行处理
            #好比 http://192.168.13.117/crm/login/
            location / {
                #基于uwsgi协议的请求转发,给后端django的启动地址
                uwsgi_pass 0.0.0.0:8000;    #这个是请求转发
                include  uwsgi_params;      #这个是添加一个文件,添加请起头信息的
            }
            #我现在想处理这样的请求              
            #我可以这样做
            #当以后请求是从static开始,我就让他去这个目录去找
            #http://192.168.13.117/static/css/reset.css
            #不加斜杠
            location  /static  {
                    alias  /opt/crms23/crmstatic;                                      
            }
           
            
        }

 

 

crm 访问形式是  80端口 ,django后台是 8000

启动uwsgi和nginx

uwsgi启动:uwsgi --ini uwsgi.ini
nginx启动 三种方法:
第一种:

# nginx -c /etc/nginx/nginx.conf
第二种:

# service nginx start
第三种(centos7)

# systemctl start nginx.service

 

nginx

1、帮助命令查看全部参数

[root@localhost opt]# nginx -h
nginx version: nginx/1.14.2
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /etc/nginx/)
  -c filename   : set configuration file (default: /etc/nginx/nginx.conf)
  -g directives : set global directives out of configuration file
2、常用命令

#重载配置文件,修改配置文件必须重载才能生效
#nginx -s reload 
#优雅的停止服务
#nginx -s quit
#立刻停止服务
#nginx -s stop
#查看版本
#nginx -v 或者nginx -V
#执行配置文件启动
# nginx -c /etc/nginx/nginx.conf

 

 

 

通过pip查看python版本

(app01) [root@nb-qic ~]# whereis pip
pip: /root/Envs/app01/bin/pip /root/Envs/app01/bin/pip3.6 /usr/local/python3/bin/pip3.6

(app01) [root@nb-qic ~]# which pip3
/root/Envs/app01/bin/pip3

(app01) [root@nb-qic ~]# pip3 --version
pip 20.2.3 from /root/Envs/app01/lib/python3.6/site-packages/pip (python 3.6)

 

source执行

在当前bash环境下读取并执行FileName中的命令。

*注:该命令通常用命令“.”来替代。

 

 

部署虚拟化环境

装virtualenv wrapper

设置家目录

  • vim ~/.bash_profile centos7

export WORKON_HOME=~/Envs   #设置virtualenv的统一管理目录
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'     #生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/usr/local/python3/bin/python3 #指定python解释器
source /usr/local/python3/bin/virtualenvwrapper.sh                  #执行安装脚本

读取文件,使得生效,此时已经可以使用virtalenvwrapper
source ~/.bash_profile
export WORKON_HOME=~/Envs 
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
export VIRTUALENVWRAPPER_PYTHON=/usr/local/python3/bin/python3
source /usr/local/python3/bin/virtualenvwrapper.sh

 

vim ~/.bashrc ubuntu14

export WORKON_HOME=~/Envs
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /home/moluo/.local/bin/virtualenvwrapper.sh

读取文件,使得生效,此时已经可以使用virtalenvwrapper
source ~/.bashrc  

常用命令方法

mkvirtualenv mkdjango2   #创建虚拟环境目录
lsvirtualenv             #列出虚拟环境
workon mkdjango2           #激活或切换虚拟环境
lssitepackages           #列出当前虚拟环境安装的模块 
cdvirtualenv              #进入虚拟环境家目录
deactivate                  #退出

 

posted @ 2020-01-05 22:57  驰念  阅读(535)  评论(0编辑  收藏  举报