ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Linux安装常用的软件(jdk,MySQL,nginx)并完成对前后端项目的部署发布

2026/9/21 3:45:00 拓冰建站 浏览量
Linux安装常用的软件(jdk,MySQL,nginx)并完成对前后端项目的部署发布

linux软件安装:


    安装方式介绍:

        二进制发布包安装:
  • 软件已经针对具体平台编译打包发布,只要解压,修改配置即可
        rpm安装:
  • 软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题
        yum安装:
  • 一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题

        源码编译安装:

软件以源码工程的形式发布,需要自己编译打包

    安装JDK:

        操作步骤:
  • 1,使用FinalShell自带的上传工具将要jdk,的二进制发布包上传到Linux。
  • 2,解压安装包,命令位 tar -zxvf jdk-21_linux-x64_bin.tar.gz -C /usr/local
  • 3,配置环境变量,使用vim命令修改 /etc/profile文件,在文件末尾加入如下配置:export JAVA_HOME = /usr/local/jdk-21.0.1          export PATH=$JAVA_HOME/bin:$PATH
  • 4,重新加载profile文件,使更改的配置立即生效,命令为source /etc/profile
  • 5,检查安装是否成功,命令为java -version

把要安装的软件包上传到,Linux中。

cd ~ 进入到 root目录,然后,点击上传的按钮开始上传。

[root@bogon /]# cd ~
[root@bogon ~]# 
召唤底栏出现:

看下效果: 

隐藏底栏:

看下效果:

点击开始上传:

寻找文件: 

看一下过程:

 上传成功,点击刷新查看。

这次三个都看到了:

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

代码:

[root@bogon ~]# ll
总用量 779004
-rw-------. 1 root root      1241 12月 29 21:29 anaconda-ks.cfg
-rw-r--r--. 1 root root 197226694 12月 29 21:32 jdk-21_linux-x64_bin.tar.gz
-rw-r--r--. 1 root root 599400444 12月 29 21:32 mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
-rw-r--r--. 1 root root   1062124 12月 29 21:32 nginx-1.20.2.tar.gz
[root@bogon ~]# tar -zxvf jdk-21_linux-x64_bin.tar.gz -C /usr/local/

 解压成功:

到 /usr/local目录查看:

[root@bogon ~]# cd /usr/local
[root@bogon local]# ll
总用量 0
drwxr-xr-x. 2 root root   6 4月  11 2018 bin
drwxr-xr-x. 2 root root   6 4月  11 2018 etc
drwxr-xr-x. 2 root root   6 4月  11 2018 games
drwxr-xr-x. 2 root root   6 4月  11 2018 include
drwxr-xr-x. 9 root root 136 12月 29 21:34 jdk-21.0.1
drwxr-xr-x. 2 root root   6 4月  11 2018 lib
drwxr-xr-x. 2 root root   6 4月  11 2018 lib64
drwxr-xr-x. 2 root root   6 4月  11 2018 libexec
drwxr-xr-x. 2 root root   6 4月  11 2018 sbin
drwxr-xr-x. 5 root root  49 12月 29 21:25 share
drwxr-xr-x. 2 root root   6 4月  11 2018 src
[root@bogon local]# 

2, 配置环境变量:

使用vim命令修改/etc/profile文件,在文件末尾加入如下配置

具体操作如下:

1). 编辑/etc/profile文件,进入命令模式
    vim /etc/profile

2). 在命令模式中,输入指令 G , 切换到文件最后
    G

3). 在命令模式中输入 i/a/o 进入插入模式,然后切换到文件最后一行
    i

4). 将上述的配置拷贝到文件中
    export JAVA_HOME=/usr/local/jdk-21.0.1
    export PATH=$JAVA_HOME/bin:$PATH

    
5). 从插入模式,切换到指令模式
    ESC
    
6). 按:进入底行模式,然后输入wq,回车保存
    :wq

export JAVA_HOME=/usr/local/jdk-21.0.1
export PATH=$JAVA_HOME/bin:$PATH

使用vim开始编辑:

[root@bogon local]# vim /etc/profile

成功进入:

进入插入模式:

配置jdk:

	export JAVA_HOME=/usr/local/jdk-21.0.1export PATH=$JAVA_HOME/bin:$PATH

进入命令行模式:

进入低行模式,输入 wq保存并退出:

3,重新加载profile文件:

为了使更改的配置立即生效,需要重新加载profile文件,执行命令:

source /etc/profile

重新加载:

[root@bogon /]# source /etc/profile
[root@bogon /]# 
4,检查安装是否成功:

和window里面检查方式一样:

java -version
    
[root@bogon /]# source /etc/profile
[root@bogon /]# java -version
java version "21.0.1" 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 21.0.1+12-LTS-29)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.1+12-LTS-29, mixed mode, sharing)
[root@bogon /]# 
安装MySQL:
1,准备工作:
  • 在安装MySQL数据库之前,我们需要先检查一下当前Linux系统中,是否安装的有MySQL的相关服务(很多linux安装完毕之后,自带了低版本的mysql的依赖包),如果有,先需要卸载掉,然后再进行安装。

A. 通过rpm相关指令,来查询当前系统中是否存在已安装的mysql软件包,执行指令如下:

rpm -qa                            查询当前系统中安装的所有软件
rpm -qa | grep mysql             查询当前系统中安装的名称带mysql的软件
rpm -qa | grep mariadb             查询当前系统中安装的名称带mariadb的软件 

  •   通过rpm -qa 查询到系统通过rpm安装的所有软件,太多了,不方便查看,所以我们可以通过管道符 | 配合着grep进行过滤查询。
  • 通过查询,我们发现在当前系统中存在mariadb数据库,是CentOS7中自带的,而这个数据库和MySQL数据库是冲突的,所以要想保证MySQL成功安装,需要卸载mariadb数据库。

RPM介绍:

RPM:全称为 Red-Hat Package Manager,RPM软件包管理器,是红帽Linux用于管理和安装软件的工具。

1,卸载linux自带的一些其他数据库:

[root@bogon /]# rpm -qa | grep mysql
[root@bogon /]# 
[root@bogon /]# rpm -qa | grep mariadb
mariadb-libs-5.5.64-1.el7.x86_64
[root@bogon /]# 

查到了一个 mariadb数据库,进行删除。

那么,我们就可以通过指令,卸载 mariadb,具体指令为:

rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

[root@localhost /]# rpm -qa | grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@localhost /]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

我们看到执行完毕之后, 再次查询 mariadb,就查不到了,因为已经被成功卸载了。  

2,解压MySQL数据库:

执行如下命令:

tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz

 

代码:

[root@localhost ~]# tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz

解压成功:

 把解压好的文件夹移动到/usr/local目录下,并改名为mysql

mv mysql-8.0.30-linux-glibc2.12-x86_64 /usr/local/mysql

cd /usr/local/mysql

1,先移动,并重命名:

 

[root@localhost ~]# mv mysql-8.0.30-linux-glibc2.12-x86_64 /usr/local/mysql

2,进入到刚刚移动到的文件夹:

[root@localhost ~]# cd /usr/local/mysql
[root@localhost mysql]# ll
3,配置系统环境变量: 

1,配置MySQL的环境变量, 通过vi编辑器编辑 /etc/profile 文件, 在尾部追加: 

export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH 

2,并执行如下指令, 注册MySQL为系统服务: 

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql


chkconfig --add mysql 

配置环境变量: 

执行: vim /etc/profile

 进入插入模式,复制要配置的信息:

 注册MySQL为系统服务:

代码:

[root@localhost mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@localhost mysql]# chkconfig --add mysql 

配置完成之后,让配置文件立即生效:

[root@localhost mysql]# source /etc/profile
[root@localhost 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用户的一个临时密码【记得复制出来,记录下来】:

1,创建一个叫mysql的用户组:

[root@localhost mysql]# groupadd mysql
[root@localhost mysql]# 

创建一个系统用户mysql,并归属于mysql组:

[root@localhost mysql]# useradd -r -g mysql -s /bin/false mysql
[root@localhost mysql]# 

2,初始化MySQL:

[root@localhost mysql]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/datav9_Krfsu%-lT
5,启动MySQL:

 1,启动MySQL服务

systemctl start mysql

[root@localhost mysql]# systemctl start mysql
[root@localhost mysql]# 

2,通过临时密码登录MySQL数据库:

 #xxxxx 代表上述生成的root的临时密码
mysql -uroot -pxxxx

[root@localhost mysql]# mysql -uroot -pv9_Krfsu%-lT
6,配置MySQL:

 1,修改root用户的密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

注意: 这个root账号仅仅能够在本机localhost上访问,我们在windows上是无法访问的。如果需要在window上或其他服务器上也能远程访问,需要创建一个账号,用于远程访问的。

2,创建账号, 并授权远程访问:

CREATE USER 'root'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;

mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root';
Query OK, 0 rows affected (0.01 sec)mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.00 sec)mysql> FLUSH PRIVILEGES;

我们已经开启了MySQL的远程访问的权限,为什么还是连接不上MySQL服务器呢?? 这是因为Linux系统的防火墙,将我们的访问拦截了。

C:\Users\13598>mysql -h192.168.70.129 -P3306  mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.70.129:3306' (10060)C:\Users\13598>
7,配置防火墙操作:

Linux系统安装完毕后,系统启动时,防火墙自动启动,防火墙拦截了所有端口的访问。接下来我们就需要学习一下,如何操作防火墙,具体指令如下:

操作指令备注
查看防火墙状态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

注意: 要想在windows上能够访问MySQL,需要开放防火墙的3306端口 或者 直接关闭防火墙 ,执行如下指令:

#开放防火墙的3306(mysql)端口号
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#开放防火墙的8080端口号
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#重新加载
firewall-cmd --reload

#查看开放的端口号
firewall-cmd --zone=public --list-ports

开放 防火墙3306端口号 

[root@localhost mysql]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@localhost mysql]# 

重新加载:

 

[root@localhost mysql]# firewall-cmd --reload
success
[root@localhost mysql]# 

查看开放端口号:

 

[root@localhost mysql]# firewall-cmd --zone=public --list-ports
3306/tcp
[root@localhost mysql]# 

在window里面重新测试一下:

mysql -hxxxx -Pxxxx -uxxxx -pxxxx

-h后面跟的是 ip地址

-P后面跟的是端口号

-u后面跟的是用户名

-p后面跟的是密码

 

C:\Users\13598>mysql -h192.168.70.129 -P3306 -uroot -proot

通常我们都是直接关闭防火墙:

 

[root@localhost mysql]# systemctl stop firewalld
[root@localhost mysql]# 

查看防火墙的状态:

 

systemctl status firewalld

开启防火墙:

 

[root@localhost mysql]# systemctl start firewalld
[root@localhost mysql]# systemctl status firewalld

我们还是选择永久关闭防火墙:

 

[root@localhost mysql]# systemctl disable firewalld
[root@localhost mysql]# 

最后在看一次防火墙的状态:

 永久关闭防火墙:

[root@localhost mysql]# systemctl status firewalld

    
    安装Nginx:

Nginx的安装包,从官方下载下来的是c语言的源码包,我们需要自己编译安装。具体操作步骤如下:

1)安装Nginx运行时需要的依赖:

yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel

[root@localhost mysql]# yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel

安装C语言的编译环境:

yum install gcc-c++

[root@localhost mysql]# yum install gcc-c++

2)上传Nginx的源码包:前面的步骤我们已经上传过了。

3)解压源码包到当前目录:

tar -zxvf nginx-1.20.2.tar.gz

[root@localhost ~]# tar -zxvf nginx-1.20.2.tar.gz

4)进入到解压目录后,执行命令:

#进入解压目录
cd nginx-1.20.2

#执行命令配置, 生成Makefile文件
./configure --prefix=/usr/local/nginx

[root@localhost ~]# cd nginx-1.20.2
[root@localhost nginx-1.20.2]# 

[root@localhost nginx-1.20.2]# ./configure --prefix=/usr/local/nginx

5). 执行命令进行编译和安装:

#编译
make

#编译安装
make install

1,执行make

 

[root@localhost nginx-1.20.2]# make

2,编译安装:

 

[root@localhost nginx-1.20.2]# make install

启动Nginx:

进入到nginx安装目录/usr/local/nginx,启动nginx服务

进入:

cd /usr/local/nginx/

启动:

sbin/nginx

进入到 /usr/local/nginx文件里面:

[root@localhost ~]# cd /usr/local/nginx/
[root@localhost nginx]# ll

启动:

[root@localhost nginx]# sbin/nginx
[root@localhost nginx]# 

启动完毕之后,我们可以通过 `ps` 指令查询当前系统中的nginx进程,从而确认nginx是否启动 。

ps -et|grep nginx

[root@localhost nginx]# ps -et|grep nginx

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

http://IP地址:80

ip地址是我们Linux的IP地址

80端口是nginx默认端口

项目部署:

nginx服务常见操作指令: 

  • ​    启动: sbin/nginx
  • ​    重载: sbin/nginx -s reload
  • ​    停止: sbin/nginx -s stop

部署前端项目:
1,把后端打包好的dist文件夹里面的文件,上传到nginx目录里面的html文件夹里

 先进入到nginx的html文件夹:

 
[root@localhost nginx]# cd html
[root@localhost html]# ll

进入后的效果: 

删除html里面默认的两个以html为后缀的文件: 

删除后的效果:

 上传要部署的前端资源:

选择文件:

已经上传完成后的效果:

2,修改nginx.conf配置文件:

修改nginx的conf文件夹里面的nginx.conf配置文件:

下面是我提供的完整的要替换的nginx.conf配置文件:把它复制粘贴到nginx的conf文件夹,里面的nginx.conf配置文件中。


#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;client_max_body_size 10m;location / {root   html;index  index.html index.htm;}location ^~ /api/ {rewrite ^/api/(.*)$ /$1 break;proxy_pass http://localhost:8080;}}}

 进入配置文件:

[root@localhost nginx]# cd conf
[root@localhost conf]# ll

替换:

 打开了nginx.conf配置文件:

全选要替换的配置文件:

 粘贴到nginx的conf文件夹里面的nginx.conf配置文件里面:

3,重新加载nginx服务的配置文件:

#重新加载配置文件
sbin/nginx -s reload

 

[root@localhost nginx]# sbin/nginx -s reload
[root@localhost nginx]# 
4,在次访问nginx

前端部署成功了

部署后端项目:
1,环境准备:

那现在,项目要上线了,要部署到linux服务器上了,我们也需要使用linux服务器上所安装的mysql数据库。

那此时,我们就可以再准备一份文件 application.yml 将里面的配置的mysql的ip地址及相关配置信息修改一下(配置Linux上安装的MySQL的信息):

我们的项目没有问题,可以正常启动。

后端打包成功了

在文件夹中找到刚刚打包好的jar包:

就是这个jar包:

2,上传jar包:

1,在Linux服务器上创建一个目录,将jar包上传到服务器 。

 mkdir -p /usr/local/app

[root@localhost ~]# mkdir -p /usr/local/app
[root@localhost ~]# 

查看app文件夹是否创建成功:

 在刚刚创建好的app文件里面,上传jar包:

寻找jar包:

 3,通过java命令,启动项目

#进入目录/usr/local/app 
cd /usr/local/app

#运行jar包
java -jar sky-server-1.0-SNAPSHOT.jar

进入到jar所在文件夹: 

[root@localhost ~]# cd /usr/local/app
[root@localhost app]# ll

启动jar包:

[root@localhost app]# java -jar tilas-management-0.0.1-SNAPSHOT.jar 

项目成功启动了

前后端联调成功了

当前程序中存在的问题:

  • 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行

  • 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息

要解决上述这两个问题,我们就可以通过 nohup 指令让程序在后台运行。

4,后台运行:

1, 后台运行程序

nohup  java –jar tilas-management-0.0.1-RELEASE.jar  &> tlias.log &

通过上述指令就可以后台运行服务,服务运行之后, 所有的日志信息都会输出到 tlias.log 文件中。

[root@localhost app]# nohup java -jar tilas-management-0.0.1-SNAPSHOT.jar &> tlias.log &
[1] 11156

看看效果:

可以看到在 app文件夹里面多了一个 tlias.log日志文件,我们查看一下这个文件里面的信息。

这些都是 执行 jar包生成的日志信息

2,停止服务:

#查看服务的进程信息
ps -ef|grep tlias

#杀掉进程
kill -9 xxxxx

1,先查询进程

[root@localhost app]# ps -ef|grep tilas
root      11156  19030  2 22:15 pts/0    00:00:12 java -jar tilas-management-0.0.1-SNAPSHOT.jar
root      21823  19030  0 22:24 pts/0    00:00:00 grep --color=auto tilas
[root@localhost app]# 

2,杀死进程

[root@localhost app]# kill -9 11156
[root@localhost app]# 

 在检查一下:

[root@localhost app]# ps -ef|grep tilas
root      24841  19030  0 22:27 pts/0    00:00:00 grep --color=auto tilas
[1]+  已杀死               nohup java -jar tilas-management-0.0.1-SNAPSHOT.jar &>tlias.log
[root@localhost app]# 

 

nohup命令说明:

nohup命令:英文全称 no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行

语法格式: nohup Command [ Arg … ] [&]

参数说明:

Command:要执行的命令

Arg:一些参数,可以指定输出文件

&:让命令在后台运行

举例:

  • nohup java -jar boot工程.jar &> hello.log &
  • 上述指令的含义为: 后台运行 java -jar 命令,并将日志输出到hello.log文件