Linux 系统部署 Java 应用
服务器 Linux
阿里云、华为云、腾讯云
安装虚拟机,虚拟机就是在你的电脑中安装一台虚拟的计算机,内存、CPU、硬盘,Linux 安装到虚拟机中。
CentOS7,企业级 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
安装 JDK
1、删除 CentOS 自带的 OpenJDK
2、通过 Xftp 将安装包拷贝到 CentOS 中
3、通过命令安装 JDK
rpm -ivh jdk-8u221-linux-x64.rpm
4、配环境变量
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
5、让配置生效
source /etc/profile
Java Web 应用
1、配置 Tomcat
2、解压缩
tar -zxvf apache-tomcat-9.0.34.tar.gz
3、启动 Tomcat
./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
部署 Spring Boot 应用
IDEA 启动 Spring Boot ,将 Spring Boot 应用打成 jar,通过命令行部署。
java -jar xxx.jar
1、将 Spring Boot 应用打包,jar,Maven
2、通过命令行启动 jar 即可
java -jar demo.jar
安装 MySQL
1、通过 Xftp 将 MySQL 安装包拷贝到 Linux
2、解压缩
tar -xvf mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar
3、安装 common、libs、client、server
4、删除自带的 mariadb
rpm -e mariadb-libs-5.5.44-2.el7.centos.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、修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
11、使用新密码登录
12、开启远程访问
create user 'root'@'%' identified with mysql_native_password by 'root';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
13、开放 3306 端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl restart firewalld.service
firewall-cmd --reload
14、MySQL 安装默认使用美国的时区,北京时间比美国晚 8 小时
set global time_zone='+8:00';
15、创建数据表
create database test character set utf8 collate utf8_general_ci;
use test;
create table user(
id int primary key auto_increment,
name varchar(22),
birthday datetime
);
insert into user(name, birthday) VALUES ('小明','1999-01-01');
insert into user(name, birthday) VALUES ('小红','2000-01-01');
war jar
如果你使用的是 SSM 或者 Java WEB(非 Spring Boot)需要通过 war 包进行部署,先把你的应用打成 war 包,丢到外置的 Tomcat 中,启动 Tomcat 服务,进而访问你的应用。
如果你使用的是 Spring Boot,内置了 Tomcat,直接用 jar 部署,使用命令启动即可
java -jar demo.jar