# Linux 系统部署 Java 应用
服务器 Linux
阿里云、华为云、腾讯云
安装虚拟机,虚拟机就是在你的电脑中安装一台虚拟的计算机,内存、CPU、硬盘,Linux 安装到虚拟机中。
CentOS7,企业级 Linux 的发行版,完全开源,完全免费。
安装软件:
- 虚拟机 VMware workstation 15
- CentOS7
- 安装 Java 环境 JDK 8
- 安装 MySQL 8
- 安装 Tomcat
- 安装 Xshell
- 安装 Xftp
![image-20200502202046738](C:\Users\ningn\AppData\Roaming\Typora\typora-user-images\image-20200502202046738.png)
# 安装 VM
# 安装 Linux 操作系统 CentOS 7
1、解压 CentOS7
2、将解压之后的文件导入 VM,运行即可
3、虚拟机设置
默认的网络配置是桥接模式,直接接入当前的网络环境,如果网络不稳定,IP 会变。
NAT,相当于在 Windows 系统中独立开辟一块新的网络空间,IP 地址固定不变的,无论是否接入外网,都可以访问 CentOS。
![image-20200502203014415](C:\Users\ningn\AppData\Roaming\Typora\typora-user-images\image-20200502203014415.png)
![image-20200502203048521](C:\Users\ningn\AppData\Roaming\Typora\typora-user-images\image-20200502203048521.png)
4、启动虚拟机,用 root 权限登录
用户名:root
密码:123456
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_281-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
```
# 安装MySql5.7
1.检测系统是否自带安装 MySQL:
```
rpm -qa | grep mysql
```
删除
```apl
rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64 // 普通删除模式
rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64 // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
```
检查否存在 mariadb 数据库
```
rpm -qa | grep mariadb
```
解压
```
tar -zxvf
```
重命名
```apl
mv mysql-5.7.25-linux-glibc2.12-x86_64 mysql-5.7.25
```
##### 添加系统mysql组和mysql用户
检查mysql组和用户是否存在,如无创建
```apl
cat /etc/group | grep mysql
#类似
mysql:x:490:
cat /etc/passwd | grep mysql
#类似
```
如无,执行添加命令:
```apl
groupadd mysql
useradd -r -g mysql mysql
#useradd -r参数表示mysql用户是系统用户,不可用于登录系统
```
##### 安装数据库
创建data目录
```
cd mysql-5.7.25
mkdir data
```
将/opt/mysql/mysql-5.7.25的所有者及所属组改为mysql
```
chown -R mysql.mysql /opt/mysql/mysql-5.7.25
```
在mysql-5.7.25/support-files目录下创建my_default.cnf
```apl
cat>>my_default.cnf
```
写入my_default.cnf
```apl
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
basedir = /opt/mysql/mysql-5.7.25
datadir = /opt/mysql/mysql-5.7.25/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8
explicit_defaults_for_timestamp=true
log-error = /opt/mysql/mysql-5.7.25/data/mysqld.log
pid-file = /opt/mysql/mysql-5.7.25/data/mysqld.pid
```
拷贝,如果提示是否覆盖,y
```
cp support-files/my_default.cnf /etc/my.cnf
```
安装 libaio
```
yum install libaio-devel.x86_64
```
初始化 mysqld
```
./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql/mysql-5.7.25/ --datadir=/opt/mysql/mysql-5.7.25/data/
```
初始化完成之后,查看日志
```
vim /opt/mysql/mysql-5.7.25/data/mysqld.log
```
临时密码
```
[Note] A temporary password is generated for root@localhost: zMC=EybcB0aF
```
把启动脚本放到开机初始化目录
```
cp support-files/mysql.server /etc/init.d/mysql
```
启动mysql服务
```
service mysql start
```
登录mysql,密码为初始密码
```
/opt/mysql/mysql-5.7.25/bin/mysql -u root -p
```
修改密码
```apl
set password=password('123456');
grant all privileges on *.* to root@'%' identified by '123456';
flush privileges;
exit #退出
```
重启mysql生效
```
service mysql restart
```
# 安装redis 5
解压
```
tar -zxvf redis-5.0.0.tar.gz
```
安装gcc
```
yum install gcc-c++
```
进入文件夹
```
cd
```
编译
```
make
```
进行redis安装
```
cd ./src
make install
cd ..
```
为了方便管理,将Redis文件中的conf配置文件和常用命令移动到统一文件中
创建bin和etc文件夹
```
mkdir bin
mkdir etc
```
将redis-5.0.0目录下的 redis.conf 移动到 redis-5.0.0目录下的etc文件夹下
```
mv redis.conf etc/
```
将mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-cli、redis-server 移动到 redis-5.0.0/bin/ 目录下
```
cd src
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server /root/redis/redis-5.0.4/bin/
```
编辑 redis.conf配置文件,设置后台启动redis服务
```
cd etc
vim redis.conf
bind 127.0.0.1 //注释69行 bind指的是只有指定的网段才能远程访问这个redis
protected-mode yes //88行的yes改成no yes防止了远程访问
daemonize //136行 属性改为yes(表明需要在后台运行)
# requirepass foobared //507行 删除前面的注释符号#,并把foobared修改成自己的密码
```
设置Redis开机启动
```
vi /etc/rc.d/rc.local
```
添加如下代码到 /etc/rc.d/rc.local 中
```
/root/redis/redis-5.0.4/bin/redis-server /root/redis/redis-5.0.4/etc/redis.conf
```
启动redis服务
```
cd bin
redis-server /root/redis/redis-5.0.4/etc/redis.conf
```
# 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
```
# 安装nginx
安装gcc
```
yum -y install gcc
```
安装pcre、pcre-devel
```
yum install -y pcre pcre-devel
```
安装zlib
```
yum install -y zlib zlib-devel
```
安装openssl
```
yum install -y openssl openssl-devel
```
解压
```
tar -xzvf
```
进入解压后的文件夹,输入以下三个指令
```
./configure
make
make install
```
安装gcc
```
```
安装gcc
```
```
安装gcc
```
```
安装gcc
```
```
# 部署 Spring Boot 应用
IDEA 启动 Spring Boot ,将 Spring Boot 应用打成 jar,通过命令行部署。
```
java -jar xxx.jar
```
1、将 Spring Boot 应用打包,jar,Maven
![image-20200502213628286](C:\Users\ningn\AppData\Roaming\Typora\typora-user-images\image-20200502213628286.png)
![image-20200502213745177](C:\Users\ningn\AppData\Roaming\Typora\typora-user-images\image-20200502213745177.png)
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
```
./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql/mysql-5.7.25/ --datadir=/opt/mysql/mysql-5.7.25/data/
CentOS7安装Java环境
最新推荐文章于 2024-07-05 21:35:27 发布