Linux基础-Linux 应用安装、部署
软件的安装工具
- 软件包管理器: 软件的安装,卸载,查询等功能
- 后端工具: rpm, dpt
- rpm: RedHat package Management 是Linux界的软件管理的一个工业标准
- dpt: debian的一个包管理器
- 前端工具: yum
- 基于后端工具的软件包的管理,主要是解决rpm安装软件的时候的依赖的解决
- 因为使用rpm安装目标软件时,需要手动安装全部的依赖包,才能正常使用目标软件
- 通过yum安装目标软件时,会自动下载所有的依赖项,然后自动安装依赖项
- 绿色软件安装和源码安装
- 绿色软件安装:只需要将该软件解压到安装目录,即可
- 源码安装:需要将源码进行编译,然后将编译后的二进制文件放到安装目录即可
rpm安装
- 它是一种软件打包发行并且实现自动安装的程序,需要用rpm程序安装的软件包,其后缀是.rpm,并可以对这种程序包进行安装、卸装和维护。
- rpm命令的使用格式如下:
rpm [选项] [软件包名]
-
选项
-i 指定安装的软件包 -h 使用“#”显示详细的安装过程及进度 -v 显示安装的详细信息 -q 查询系统是否已安装指定的软件包 -a 查看系统已安装的所有软件包 -e 卸载软件包 --nodeps 配合-e参数使用,强制卸载不检查依赖项 --force 强制操作 如强制安装删除等
-
常用命令
安装一个包 # rpm -ivh <包名> --nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。 --force 即使覆盖属于其它包的文件也强迫安装 查询一个包是否被安装 # rpm -q <软件名> 得到被安装的包的信息 # rpm -qi < 软件名> 列出该包中有哪些文件 # rpm -ql < 软件名> 列出服务器上的一个文件或目录属于哪一个RPM包 #rpm -qf <文件或目录名> 列出所有被安装的rpm package # rpm -qa 卸载一个包 # rpm -e <软件名>
yum安装
- yum仓库默认已经配置好了,在
/etc/yum.repos.d
目录下 -
常用命令:
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 <软件名>
-
修改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
其他安装
-
果是在ubuntu平台,软件的安装可以通过互联网在线安装,更加方便快捷:
sudo apt-get update 获得最新的软件包的列表 sudo apt-get install xxx 从源中安装xxx软件 sudo apt-get remove xxx 删除xxx软件
JDK的安装
- 从官网下载需要的jdk(jdk-8u161-linux-x64.tar.gz)
- 把文件上传到
/usr/local/soft
目录- 由于第一次
/usr/local/
下是没有soft文件夹的,mkdir soft
创建 -
从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 ...
- 由于第一次
- 进行解压缩
tar -zxvf /usr/local/soft/jdk-8u161-linux-x64.tar.gz -C /usr/local
- 此时local下有个
jdk1.8.0_161
文件夹 - 将该文件重命名为jdk1.8:
mv jdk1.8.0_161/ jdk1.8
- cd到jdk1.8目录下,查看目录会发现有个bin目录,该目录下存放的都是可执行命令
- 说明jdk安装包是绿色版的,直接解压即可使用
- 此时local下有个
- 配置环境变量
-
方法一:
vi /etc/profile.d/jdk.sh #bin/bash export JAVA_HOME=/usr/local/jdk1.8 export PATH=$JAVA_HOME/bin:$PATH
-
方法二:在
vim ~/.bash_profile
中配置JAVA_HOME=/usr/local/jdk1.8 PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
-
- 重新加载配置文件
source /etc/profile
或者source ~/.bash_profile
-
验证配置是否正确:
# 查看java版本 java -version # 根据环境变量查看安装目录 echo $JAVA_HOME
MYSQL的安装
-
先把postfix 和mariadb-libs卸载掉,不然的会有依赖包冲突
rpm -e postfix mariadb-libs
-
安装mysql的依赖net-tools和 perl
yum -y install net-tools perl
-
安装Mysql的包
cd /usr/local/soft/mysql5.7/ yum install -y *.rpm
- 设置数据库开机启动
systemctl enable mysqld
- 启动MySQL服务
systemctl start mysqld
- 通过
netstat -ntlp
查看应用进程,发现3306端口已经占用,为mysqld,或者systemctl status mysqld
、ps -ef |grep mysql
来查看 - 查看配置信息:
rpm -qc mysql-community-server
,发现有个/etc/my.cnf
启动配置文件 - 重启mysql
systemctl restart mysqld
- 通过
- 设置密码
- 查看临时密码:
grep 'temporary password' /var/log/mysqld.log
-
用上面临时密码,登录账户修改密码
mysql -uroot -p'H/SoGjnxl0.!' ALTER USER 'root'@'localhost' IDENTIFIED BY 'CoderZhong_2022';
- 输入 quit 退出, 重新登录
mysql -uroot -p'CoderZhong_2022'
- 查看临时密码:
- 开放远程登录权限
-
有时候需要使用NAVICAT登录,那么就需要开启
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'CoderZhong_2022' WITH GRANT OPTION; FLUSH PRIVILEGES;
-
开放3306端口(虚拟机 必须打开,否则无法访问)
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
-
其他设置
- mysql的安装配置文件
/etc/my.cnf
-
启动错误日志查看:
less /var/log/messages less /var/log/mysqld.log
-
设置utf8字符集
vi /etc/my.cnf 在[mysqld] 下面添加 character_set_server=utf8
- 设置完重启mysql
Tomcat的安装
-
解压二进制文件apache-tomcat-8.5.53.tar.gz到指定目录
tar -zxvf /usr/local/soft/apache-tomcat-8.5.53.tar.gz -C /usr/local
-
配置防火墙开放8080端口(虚拟机 必须打开,否则无法访问)
firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --reload
-
启动tomcat
/usr/local/apache-tomcat-8.5.53/bin/startup.sh
-
查看启动日志
tail -100f /usr/local/apache-tomcat-8.5.53/logs/catalina.out
-
查看端口启动信息:
netstat -ntpl ps -ef |grep tomcat ps -ef |grep tomcat |grep -v grep
-
停止服务
kill -9 进程ID 或者 /usr/local/apache-tomcat-8.5.53/bin/shutdown.sh
CRM部署应用
-
将事先打包好的项目wms_app文件夹上传到
/usr/local/soft/
下,该文件夹有2个子文件wms.sql 数据库初始化脚本 wms.war 项目包
-
解压war
# 直接在wms_app下解压 unzip wms.war
-
修改数据库配置
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
- 准备数据库, 在mysql中创建对应的数据库wms
- 使用Navicat创建数据库wms
- 然后将wms.sql中的脚本复制到该数据库下执行
-
部署项目
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
- 浏览器输入:
http://172.16.166.3:8080/
可以看到登录页面 - 注意:
- 使用
tail -100f logs/catalina.out
可以查看tomcat的日志信息
- 使用
把CRM项目配置为多环境的管理
- 准备多个环境(dev:开发环境, test:测试环境, prod:线上环境)
- 对于一些通用的配置, 直接放在src/main/resources目录
- 对于数据库的配置文件和日志文件, 直接放在对应的环境目录下面, 不同环境有不同的配置
- 修改pom.xml,添加多个环境管理
- 修改资源导入配置目录:
-
使用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下
手动部署常用命令
后台运行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`