Linux基础-Linux 应用安装、部署

软件的安装工具

  1. 软件包管理器: 软件的安装,卸载,查询等功能
  2. 后端工具: rpm, dpt
    1. rpm: RedHat package Management 是Linux界的软件管理的一个工业标准
    2. dpt: debian的一个包管理器
  3. 前端工具: yum
    1. 基于后端工具的软件包的管理,主要是解决rpm安装软件的时候的依赖的解决
    2. 因为使用rpm安装目标软件时,需要手动安装全部的依赖包,才能正常使用目标软件
    3. 通过yum安装目标软件时,会自动下载所有的依赖项,然后自动安装依赖项
  4. 绿色软件安装和源码安装
    1. 绿色软件安装:只需要将该软件解压到安装目录,即可
    2. 源码安装:需要将源码进行编译,然后将编译后的二进制文件放到安装目录即可

rpm安装

  1. 它是一种软件打包发行并且实现自动安装的程序,需要用rpm程序安装的软件包,其后缀是.rpm,并可以对这种程序包进行安装、卸装和维护。
  2. rpm命令的使用格式如下:rpm [选项] [软件包名]
  3. 选项

     -i	指定安装的软件包
     -h	使用“#”显示详细的安装过程及进度
     -v	显示安装的详细信息
     -q	查询系统是否已安装指定的软件包
     -a	查看系统已安装的所有软件包
     -e	卸载软件包
     --nodeps	配合-e参数使用,强制卸载不检查依赖项
     --force	强制操作 如强制安装删除等
    
  4. 常用命令

     安装一个包 
     # rpm -ivh <包名>
     --nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。 
     --force 即使覆盖属于其它包的文件也强迫安装 
        
     查询一个包是否被安装 
     # rpm -q <软件名>
        
     得到被安装的包的信息 
     # rpm -qi < 软件名> 
        
     列出该包中有哪些文件 
     # rpm -ql < 软件名> 
        
     列出服务器上的一个文件或目录属于哪一个RPM包 
     #rpm -qf <文件或目录名>
        
     列出所有被安装的rpm package 
     # rpm -qa 
        
     卸载一个包 
     # rpm -e <软件名>
    

yum安装

  1. yum仓库默认已经配置好了,在/etc/yum.repos.d目录下
  2. 常用命令:

     1 配置一个自定义的仓库地址
     	/etc/yum.repos.d
     	local.repo
     2 查看yum中的所有包
       yum list
     3 搜索对应的软件名称
       yum search 软件名称
     4 安装命令
     	yum install <软件名>
     5 查看软件包
     	yum list |grep mysql
     	yum list installed 
     6 卸载软件包
     	yum remove <软件名>
    
  3. 修改yum源

     #安装wget
     yum install wget -y
        
     # 备份原有yum源
     mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
        
     # 更换为阿里的yum源
     wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
        
     yum makecache
        
     yum -y update
    

其他安装

  1. 果是在ubuntu平台,软件的安装可以通过互联网在线安装,更加方便快捷:

     sudo apt-get update	获得最新的软件包的列表
     sudo apt-get install xxx    从源中安装xxx软件
     sudo apt-get remove xxx 删除xxx软件
    

JDK的安装

  1. 从官网下载需要的jdk(jdk-8u161-linux-x64.tar.gz)
  2. 把文件上传到/usr/local/soft目录
    1. 由于第一次/usr/local/下是没有soft文件夹的,mkdir soft创建
    2. 从mac本机将文件上传到远程linux服务器,使用scp命令

       # mac打开终端,执行以下命令:P代SSH的表端口号,22 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数(IP)。
       # scp -P 22 /Users/mac/Desktop/jdk-8u161-linux-x64.tar.gz root@172.16.166.3:/usr/local/soft/
       # 使用这个:不需要添加端口参数-P
       scp /Users/mac/Desktop/jdk-8u161-linux-x64.tar.gz root@172.16.166.3:/usr/local/soft/
       # 如果是上传文件夹 添加-r参数
       scp -r ...
      
  3. 进行解压缩 tar -zxvf /usr/local/soft/jdk-8u161-linux-x64.tar.gz -C /usr/local
    1. 此时local下有个jdk1.8.0_161文件夹
    2. 将该文件重命名为jdk1.8: mv jdk1.8.0_161/ jdk1.8
    3. cd到jdk1.8目录下,查看目录会发现有个bin目录,该目录下存放的都是可执行命令
    4. 说明jdk安装包是绿色版的,直接解压即可使用
  4. 配置环境变量
    1. 方法一:

       vi /etc/profile.d/jdk.sh
       #bin/bash
       export JAVA_HOME=/usr/local/jdk1.8
       export PATH=$JAVA_HOME/bin:$PATH
      
    2. 方法二:在vim ~/.bash_profile中配置

       JAVA_HOME=/usr/local/jdk1.8
       PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
      
  5. 重新加载配置文件 source /etc/profile 或者source ~/.bash_profile
  6. 验证配置是否正确:

     # 查看java版本
     java -version
     # 根据环境变量查看安装目录
     echo $JAVA_HOME
    

MYSQL的安装

  1. 先把postfix 和mariadb-libs卸载掉,不然的会有依赖包冲突

     rpm -e postfix mariadb-libs
    
  2. 安装mysql的依赖net-tools和 perl

     yum -y install net-tools perl
    
  3. 安装Mysql的包

     cd /usr/local/soft/mysql5.7/
     yum install -y *.rpm
    
  4. 设置数据库开机启动 systemctl enable mysqld
  5. 启动MySQL服务 systemctl start mysqld
    1. 通过netstat -ntlp查看应用进程,发现3306端口已经占用,为mysqld,或者systemctl status mysqldps -ef |grep mysql来查看
    2. 查看配置信息:rpm -qc mysql-community-server,发现有个/etc/my.cnf启动配置文件
    3. 重启mysql systemctl restart mysqld
  6. 设置密码
    1. 查看临时密码:grep 'temporary password' /var/log/mysqld.log
    2. 用上面临时密码,登录账户修改密码

       mysql -uroot -p'H/SoGjnxl0.!'
       ALTER USER 'root'@'localhost' IDENTIFIED BY 'CoderZhong_2022';   
      
    3. 输入 quit 退出, 重新登录 mysql -uroot -p'CoderZhong_2022'
  7. 开放远程登录权限
    1. 有时候需要使用NAVICAT登录,那么就需要开启

       GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'CoderZhong_2022'  WITH GRANT OPTION; 
       FLUSH PRIVILEGES;
      
    2. 开放3306端口(虚拟机 必须打开,否则无法访问)

       firewall-cmd --zone=public --add-port=3306/tcp --permanent
       firewall-cmd --reload
      

其他设置

  1. mysql的安装配置文件 /etc/my.cnf
  2. 启动错误日志查看:

     less  /var/log/messages
     less /var/log/mysqld.log
    
  3. 设置utf8字符集

     vi /etc/my.cnf 
     在[mysqld] 下面添加 character_set_server=utf8 
    
    1. 设置完重启mysql

Tomcat的安装

  1. 解压二进制文件apache-tomcat-8.5.53.tar.gz到指定目录

     tar -zxvf /usr/local/soft/apache-tomcat-8.5.53.tar.gz -C /usr/local
    
  2. 配置防火墙开放8080端口(虚拟机 必须打开,否则无法访问)

     firewall-cmd --zone=public --add-port=8080/tcp --permanent
     firewall-cmd --reload
    
  3. 启动tomcat

     /usr/local/apache-tomcat-8.5.53/bin/startup.sh
    
  4. 查看启动日志

     tail -100f   /usr/local/apache-tomcat-8.5.53/logs/catalina.out
    
  5. 查看端口启动信息:

     netstat -ntpl
     ps -ef |grep tomcat
     ps -ef |grep tomcat |grep -v grep
    
  6. 停止服务

     kill -9 进程ID   或者 /usr/local/apache-tomcat-8.5.53/bin/shutdown.sh
    

CRM部署应用

  1. 将事先打包好的项目wms_app文件夹上传到/usr/local/soft/下,该文件夹有2个子文件

     wms.sql   数据库初始化脚本
     wms.war   项目包
    
  2. 解压war

     # 直接在wms_app下解压
     unzip wms.war
    
  3. 修改数据库配置

     cd WEB-INF/classes/
     cat db.properties
     #文件内容如下:
     jdbc.url=jdbc:mysql:///wms?useSSL=false
     jdbc.username=root
     jdbc.password=admin
     使用vi编辑修改数据库密码后如下:
     jdbc.password=CoderZhong_2022
    
  4. 准备数据库, 在mysql中创建对应的数据库wms
    1. 使用Navicat创建数据库wms
    2. 然后将wms.sql中的脚本复制到该数据库下执行
  5. 部署项目

     cd /usr/local/tomcat8/conf/
     vi server.xml
     #在host标签上添加:
     <Context docBase='/usr/local/soft/wms_app' path="/" />
     # 关闭tomcat
     kill -9 22383
     # 重启tomcat
     bin/startup.sh
    
  6. 浏览器输入:http://172.16.166.3:8080/可以看到登录页面
  7. 注意:
    1. 使用tail -100f logs/catalina.out可以查看tomcat的日志信息

把CRM项目配置为多环境的管理

  1. 准备多个环境(dev:开发环境, test:测试环境, prod:线上环境)
    1. 对于一些通用的配置, 直接放在src/main/resources目录
    2. 对于数据库的配置文件和日志文件, 直接放在对应的环境目录下面, 不同环境有不同的配置
  2. 修改pom.xml,添加多个环境管理
  3. 修改资源导入配置目录:
  4. 使用maven命令打包编译mvn clean package -Pprod -Dmaven.test.skip=true

     mvn clean 表示运行清理操作(会默认把target文件夹中的数据清理)
     package: 打包
     -Pprod: P代表Profiles配置文件,可以通过-P进行传递或者赋值。
        
     mvn clean package -Ptest 将触发test环境的profile配置
     -Dmaven.test.skip=true  不执行测试用例,也不编译测试用例类。
     -DskipTests 不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下
    

图4

手动部署常用命令

后台运行Java程序(springboot包)
nohup java -jar jar路径 >控制台日志文件路径 2>&1 &
nohup java -jar /home/mjlee/ai_box.jar >/home/mjlee/console.log 2>&1 &

根据端口号查看进程id:lsof -ti:8080
根据进程id杀死进程:kill -9 进程id
根据端口号杀死进程:kill -9 `lsof -ti:8080`
Table of Contents