Linux 系统部署 Java 应用
服务器 Linux
阿里云、华为云、腾讯云
安装软件:
- 虚拟机 VMware workstation 15
- CentOS7
- 安装 Java 环境 JDK 8
- 安装 MySQL 8
- 安装 Tomcat
- 安装 Xshell
- 安装 Xftp
安装 VM
安装 Linux 操作系统 CentOS 7
1、解压 CentOS7
2、将解压之后的文件导入 VM,运行即可
3、虚拟机设置
默认的网络配置是桥接模式,直接接入当前的网络环境,如果网络不稳定,IP 会变。
NAT,相当于在 Windows 系统中独立开辟一块新的网络空间,IP 地址固定不变的,无论是否接入外网,都可以访问 CentOS。
4、启动虚拟机,用 root 权限登录
Linux 命令终端查询 IP 地址
ifconfig
在windows中打开cmd,输入ping + IP地址
安装 JDK
1、删除 CentOS 自带的 OpenJDK
-
查看自带的jdk信息:rpm -qa | grep jdk
-
删除:rpm -e --nodeps 查找出来的jdk信息
2、创建一个专门存放java工具的目录,
- cd /root/下载
- 然后mkdir java
- 然后 cd java
- 然后通过xftp把jdk安装包复制到linux中的java目录下
3、通过命令安装 JDK(jdk转移到linux中但是还没有配置,需要执行以下命令配置)
rpm -ivh jdk-8u221-linux-x64.rpm
4、配环境变量
vim /etc/profile
按i在最下方插入
JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
然后esc :wq保存退出
5、让配置生效
source /etc/profile
Java Web 应用
1、配置 Tomcat
- cd /root/下载
- mkdir tomcat
- 把tomcat压缩包通过xftp传送到linux的tomcat目录下
2、解压缩
tar -zxvf apache-tomcat-9.0.34.tar.gz
3、启动 Tomcat(关闭tomcat是./shutdown.sh)
cd /root/下载/tomcat/apache-tomcat-9.0.34/bin
./startup.sh
4、CentOS 开放 8080 端口
- 检查防火墙状态
firewall-cmd --state
running 表示防火墙是开启的,如果你看到的是 not running,防火墙关闭,需要开启
systemctl restart firewalld.service
- 开放 8080 端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
- 重启防火墙
systemctl restart firewalld.service
- 重新载入配置
firewall-cmd --reload
- 配置完成后要重启tomcat(要在tomcat的bin目录下)
./shutdown.sh
./startup.sh
最后,找到windows上正常运行的工程的war包,通过xftp复制到linux的tomcat的webapps目录下(因为tomcat启动后会自动扫描wenapps目录),然后重新启动tomcat,就能在windows上请求到linux上运行的应用了
windows上输入:http://192.168.216.130:8080/web/
-
192.168.216.130: linux的IP地址
-
8080: 端口号
-
web: linux中webapps中的war包名
部署 Spring Boot 应用
IDEA 启动 Spring Boot ,将 Spring Boot 应用打成 jar,通过命令行部署。
java -jar xxx.jar
1、将 Spring Boot 应用打包,打成jar包,通过Maven打包
2、通过命令行启动 jar 就可以在本地请求到服务器了
java -jar xxx.jar
但是如果想要在linux中启动,还需要在linux中安装mysql,linux是无法调用本地数据库的
安装 MySQL
1、创建mysql文件夹,通过 Xftp 将 MySQL 安装包拷贝到 Linux(/下载/mysql目录)
2、解压缩
tar -xvf mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar
3、安装 common、libs、client、server这四个就可以了
4、删除自带的 mariadb
先查看是否有
rpm -qa | grep mariadb
如果有再删除(–nodeps强制)
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
5、安装命令行
rpm -ivh mysql-community-common-8.0.20-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.20-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.20-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.20-1.el7.x86_64.rpm --nodeps --force
6、初始化 MySQL
mysqld --initialize
7、授权防火墙
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;
8、查看数据库的初始化密码(密码是安装时随机给的密码)
cat /var/log/mysqld.log | grep password
9、登录数据库
mysql -uroot -p
10、修改密码(密码也是root)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
11、使用新密码登录(先退出exit)
12、开启远程访问(未开启前只有linux能访问)(数据库命令,在mysql中执行)
create user 'root'@'%' identified with mysql_native_password by 'root';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
13、开放 3306 端口(退出mysql,因为这不是数据库命令)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl restart firewalld.service
firewall-cmd --reload
14、MySQL 安装默认使用美国的时区,北京时间比美国晚 8 小时(需要进入mysql中修改)
set global time_zone='+8:00';
12,13,14完成后就可以在windows上连接linux的数据库了
15、给刚创建的数据库添加数据表
16、idea连接数据库(需要把之前连接的数据库删除)
17、调用https://localhost:8080/people/index
为什么不是https://192.168.216.130:8080 ? 因为我们是在本地调用外部的数据库,请求在本地,数据库在外地,
所以要把idea的数据库切换为linux的数据库,请求仍然在本地请求,所以还是localhost
成功执行后,再次打包为jar包,在本地命令行输入 java -jar xxx.jar 测试是否运行成功
创建一个专门保存spring boot应用的文件夹(/下载/java/spring_boot_services)
Spring Boot,内置了 Tomcat,直接通过Xftp把jar包丢到linux中再执行即可
使用命令启动即可
java -jar xxx.jar
SSM :war包
spring boot :jar包