目录
一.远程连接工具FinalShell
二.安装JDK
1.安装JDK
三.MySQL安装
1.准备工作
2.将MySQL安装包上传到Linux并解压
3.配置系统环境变量
4.初始化数据库
5.配置MySQL
1.服务器防火墙操作
2.linux防火墙操作
6.连接测试
1.客户端连接
2.打开数据库图形化工具连接
四.安装Nginx
1.安装
2.启动nginx
五.前端项目部署
六.后端项目部署
1.环境准备
2.打包部署
3.后台运行
本文详细介绍了在Linux系统上部署Java Web项目的完整流程。主要内容包括:1)使用FinalShell远程连接Linux服务器;2)安装JDK并配置环境变量;3)安装MySQL数据库,包括卸载冲突软件、初始化配置和远程访问设置;4)安装Nginx并部署前端项目;5)打包部署Spring Boot后端项目,使用nohup命令实现后台运行。文中还提供了各软件的安装包链接和详细的操作命令,涵盖了从环境搭建到项目部署的全过程,并特别说明了防火墙配置和常见问题解决方法。
需要的话自取
FinalShell
链接:https://pan.baidu.com/s/1aU5mfQ0zDz18qXHnVhSWXg 提取码:523o
jdk
17版本
链接:https://pan.baidu.com/s/1BMVAWtq431jsLbhKB8pnwg 提取码:yxxv
21版本
链接:https://pan.baidu.com/s/1rs72Jy5Vg7p931gqOtdyLw 提取码:6f5x
mysql
链接:https://pan.baidu.com/s/1S4C71DeoHY0S7gcK8mCjnA 提取码:y5rg
nginx
链接:https://pan.baidu.com/s/1tDZIF5LqFqaB4mpyJDKkJQ 提取码:cmry
一.远程连接工具FinalShell
先介绍一款远程连接工具(ssh) FinalShell 直接无脑安装,安装完成之后打击下面这个图标
当然你有其他远程连接工具就不用操作这一步了

接着点击

接着操作

二.安装JDK
软件安装方式
在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下:

1.安装JDK
上述我们介绍了Linux系统软件安装的四种形式,接下来我们就通过第一种(二进制发布包)形式来安装JDK。 JDK对应的二进制发布包,你没有下载jdk,可以使用下面的,如下:
JDK具体安装步骤如下:
1). 上传安装包
使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux

由于上述在进行文件上传时,选择的上传目录 /root,上传完毕后,我们执行指令 cd /root 切换到根目录下,查看上传的安装包。用ll命令就可以查看了

2). 解压安装包
执行如下指令,将上传上来的压缩包进行解压,并通过-C参数指定解压文件存放目录为 /usr/local。
tar -zxvf jdk-21_linux-x64_bin.tar.gz -C /usr/local/

3). 配置环境变量
使用vim命令修改/etc/profile文件,在文件末尾加入如下配置
![]()
export JAVA_HOME=/usr/local/jdk-17.0.10
export PATH=$JAVA_HOME/bin:$PATH
具体操作指令如下: 1). 编辑/etc/profile文件,进入命令模式
vim /etc/profile
2). 在命令模式中,输入指令 G , 切换到文件最后 G
3). 在命令模式中输入 i/a/o 进入插入模式,然后切换到文件最后一行 i
4). 将上述的配置拷贝到文件中
export JAVA_HOME=/usr/local/jdk-17.0.10
export PATH=$JAVA_HOME/bin:$PATH

5). 从插入模式,切换到指令模式 ESC
6). 按:进入底行模式,然后输入wq,回车保存 :wq
4). 重新加载profile文件
为了使更改的配置立即生效,需要重新加载profile文件,执行命令:
source /etc/profile
5). 检查安装是否成功
java -version

三.MySQL安装
对于MySQL数据库的安装,我们将要使用前面讲解的第一种安装方式进行安装。
1.准备工作
在安装MySQL数据库之前,我们需要先检查一下当前Linux系统中,是否安装的有MySQL的相关服务(很多linux安装完毕之后,自带了低版本的mysql的依赖包),如果有,先需要卸载掉,然后再进行安装。
A. 通过rpm相关指令,来查询当前系统中是否存在已安装的mysql软件包,执行指令如下:
查询当前系统中安装的所有软件
rpm -qa
查询当前系统中安装的名称带mysql的软件
rpm -qa | grep mysql
查询当前系统中安装的名称带mariadb的软件
rpm -qa | grep mariadb
通过rpm -qa 查询到系统通过rpm安装的所有软件,太多了,不方便查看,所以我们可以通过管道符 | 配合着grep进行过滤查询。

通过查询,我们发现在当前系统中存在mariadb数据库,是CentOS7中自带的,而这个数据库和MySQL数据库是冲突的,所以要想保证MySQL成功安装,需要卸载mariadb数据库。
RPM:全称为 Red-Hat Package Manager,RPM软件包管理器,是红帽Linux用于管理和安装软件的工具。
B. 通过 rpm 相关指令,来卸载对应的组件,执行指令如下:
在rpm中,卸载软件的语法为:rpm -e –nodeps 软件名称
那么,我们就可以通过指令,卸载 mariadb,具体指令为:
rpm -e –nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

我们看到执行完毕之后, 再次查询 mariadb,就查不到了,因为已经被成功卸载了。
2.将MySQL安装包上传到Linux并解压
A. 上传MySQL安装包
在上面,提供的有MySQL的安装包 ,我们需要将该安装包上传到Linux系统的根目录 /root 下面。
在上面的操作步骤中已经上传了

B. 解压到 当前目录
执行如下指令:
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz

C. 将解压后的文件夹移动到 /usr/local 目录下, 并改名为 mysql
mv mysql-8.0.30-linux-glibc2.12-x86_64 /usr/local/mysql cd /usr/local/mysql
3.配置系统环境变量
配置MySQL的环境变量, 通过vi编辑器编辑 /etc/profile文件, 在尾部追加:
这里环境变量配置和上面的jdk一样
vi /etc/profile
把下面这个添加到文件里面
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH
如下所示:

并执行如下指令, 注册MySQL为系统服务:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql chkconfig –add mysql
4.初始化数据库
#创建一个用户组, 组名就叫
mysql groupadd mysql
#创建一个系统用户 mysql, 并归属于用户组
mysql useradd -r -g mysql -s /bin/false mysql
#初始化mysql
mysqld –initialize –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data
执行上述指令时, 会输入如下日志,在日志中就输出了MySQL中root用户的一个临时密码【记得复制出来,记录下来】:
启动mysql

A. 启动MySQL服务
systemctl start mysql
B. 通过命令, 登录MySQL #xxxxx 代表上述生成的root的临时密码 mysql -uroot -pxxxxx

5.配置MySQL
A. 修改root用户的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';

注意: 这个root账号仅仅能够在本机localhost上访问,我们在windows上是无法访问的。如果需要在window上或其他服务器上也能远程访问,需要创建一个账号,用于远程访问的。
B. 创建账号, 并授权远程访问
CREATE USER 'root'@'%' IDENTIFIED BY '1234';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;

我们已经开启了MySQL的远程访问的权限,为什么还是连接不上MySQL服务器呢?? 这是因为服务器系统的防火墙,将我们的访问拦截了。
可以使用自己电脑cmd命令尝试连接一下
mysql -h192.268.200.128 -P3306 -uroot -p1234

(如果你用的服务器就用第一种方式打开防火墙,如果你用的linux就用第二种方式打开防火墙)
1.服务器防火墙操作
找到服务器防火墙添加规则开放3306端口

2.linux防火墙操作
如何操作防火墙,具体指令如下:
注意: 要想在windows上能够访问MySQL,需要开放防火墙的3306端口 或者 直接关闭防火墙 ,执行如下指令:
#开发防火墙的3306端口号
firewall-cmd –zone=public –add-port=3306/tcp –permanent
#重新加载
firewall-cmd –reload
#查看开放的端口号
firewall-cmd –zone=public –list-ports

下面是一些指令,可以参考
| 操作 | 指令 |
| 查看防火墙状态 | systemctl status firewalld / firewall-cmd –state |
| 暂时关闭防火墙 | systemctl stop firewalld |
| 永久关闭防火墙(禁用开机自启) | systemctl disable firewalld |
| 暂时开启防火墙 | systemctl start firewalld |
| 永久开启防火墙(启用开机自启) | systemctl enable firewalld |
| 开放指定端口 | firewall-cmd –zone=public –add-port=8080/tcp –permanent |
| 关闭指定端口 | firewall-cmd –zone=public –remove-port=8080/tcp –permanent |
| 立即生效(重新加载) | firewall-cmd –reload |
| 查看开放端口 | firewall-cmd –zone=public –list-ports |
6.连接测试
关闭掉linux系统的防火墙之后,我们就可以打开windows上的命令行,通过mysql的客户端(命令行/图形化界面)来连接远程linux上安装的MySQL数据库了。
1.客户端连接

2.打开数据库图形化工具连接
这里就开始执行你项目中所需要的sql脚本,这里不再多述
四.安装Nginx
1.安装
Nginx的安装包,从官方下载下来的是c语言的源码包,我们需要自己编译安装。具体操作步骤如下:
1). 安装Nginx运行时需要的依赖
yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel
安装C语言的编译环境.
yum install gcc-c++
2). 上传Nginx的源码包

3). 解压源码包到当前目录
tar -zxvf nginx-1.20.2.tar.gz
4). 进入到解压目录后,执行指令
#进入解压目录
cd nginx-1.20.2
#执行命令配置, 生成Makefile文件
./configure –prefix=/usr/local/nginx
5). 执行命令进行编译和安装
#编译
make
#编译安装
make install
2.启动nginx
(如果你用的服务器就用第一种方式打开防火墙,如果你用的linux就用第二种方式打开防火墙)
启动之前记得开放nginx的80端口
1.服务器

2.linux系统
firewall-cmd –zone=public –add-port=80/tcp –permanent
开放之后可以查看一下
firewall-cmd –zone=public –list-ports
进入到nginx安装目录/usr/local/nginx,启动nginx服务
cd /usr/local/nginx/
sbin/nginx
启动完毕之后,我们可以通过 ps 指令查询当前系统中的nginx进程,从而确认nginx是否启动 。
ps -ef|grep nginx

然后,我们就可以打开浏览器,访问服务器上的nginx 。
我的是192.168.100.80,直接访问

五.前端项目部署
1.将nginx的安装目录的html中的静态资源文件先删除掉。

2.找到你前段写好的项目点击package-lock.json,然后下面会出现一个npm脚本,点击build右面的那个三角箭头,然后等运行完毕会出现一个dist文件里面有 assets,favicon.ico,index.html三个文件

3.上传到这个位置/usr/local/nginx/html文件当中

修改你项目所需要的nginx.conf 配置文件,根据你自己项目需求进行配置

4). 重新加载nginx服务的配置文件
#重新加载配置文件
sbin/nginx -s reload
5). 再次访问nginx (可能会存在浏览器缓存, 可以按Ctrl+F5, 强制刷新清理缓存)
到此,前端项目部署完毕
nginx服务常见操作指令:
-
启动: sbin/nginx
-
重载: sbin/nginx -s reload
-
停止: sbin/nginx -s stop
六.后端项目部署
1.环境准备
那现在,项目要上线了,要部署到服务器上了,我们也需要使用l服务器上所安装的mysql数据库。
那此时,我们就可以再准备一份文件 application.yml 将里面的配置的mysql的ip地址及相关配置信息修改一下(配置Linux上安装的MySQL的信息):

去idea中找到你的后端项目,找到 application.yml 这个文件,把mysql修改成你自己服务器的地址

2.打包部署
(1) 执行 package 指令,进行打包操作,将当前的springboot项目,打成一个jar包。
一定记得打包之前跳过测试 (跳过测试)
这个则是跳过测试


(2)打包完成之后左面目录会出现一个target文件,里面有一个jar文件

(3)右击打开

(4).在服务器上创建一个目录,将jar包上传到服务器 。
mkdir -p /usr/local/app

(5).通过java命令,启动项目
#进入目录
/usr/local/app cd /usr/local/app
#运行jar包
java -jar management-0.0.1-SNAPSHOT.jar

项目启动起来之后,就可以打开浏览器测试啦。直接访问你的服务器即可
当前程序中存在的问题:
-
线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
-
线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
要解决上述这两个问题,我们就可以通过 nohup 指令让程序在后台运行。
3.后台运行
(1).后台运行程序
nohup java -jar management-0.0.1-SNAPSHOT.jar &> t.log &
通过上述指令就可以后台运行服务,服务运行之后, 所有的日志信息都会输出到 t.log 文件中。
(2).停止服务
#查看服务的进程信息
ps -ef|grep management
#杀掉进程
kill -9 xxxxx
nohup命令说明:
-
nohup命令:英文全称 no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行
-
语法格式:nohup command [ args … ] [&]
-
参数说明:
-
command:要执行的命令
-
args:一些参数,可以指定输出文件
-
&:让命令在后台运行
-
-
举例:
- nohup java -jar boot工程.jar &> hello.log &
上述指令的含义为: 后台运行 java -jar 命令,并将日志输出到hello.log文件
网硕互联帮助中心




评论前必须登录!
注册