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手动安装,得处理依赖关系 -自由选择版本,且可以扩展第三方功能的安装方式,叫做源码编译安装
查看依赖模块
pip3 freeze > requirements.txt #这个 requirements.txt文件是python程序员都认识的模块依赖文件
第一步.启动mariadb数据库
-
配置yum源
1.yum 配置yum源 yum install mariadb-server mariadb -y 2.通过yum安装的软件,怎么启动 systemctl start mariadb # systemctl start/stop/status/restart mariadb 3.登陆数据库 cmd登录
-
导出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环境,以及虚拟环境
- 编译安装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 #让这个文件中的变量生效
- 下载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 #进入虚拟环境第三方模块目录
- 使用mkvirtualenv命令,创建新的虚拟环境,用于启动crm
mkvirtualenv s23_crm
- 拷贝crm代码,到linux机器
rz # 讲crm项目压缩包拖到linux,
# 解压 - 解决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中的命令。
*注:该命令通常用命令“.”来替代。
-
pip3 install -i https://pypi.douban.com/simple virtualenvwrapper
-
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 #退出