springboot项目部署到阿里云服务器(centos7)

springboot项目部署到阿里云服务器(centos7)

​ 本篇文章将详细为大家介绍如何将springboot项目部署到阿里云服务器上。项目案例使用锋迷商城项目,如果大家需要项目资源,可以去gitee上下载,有很多资源。

​ 使用工具:Xshell,Xftp

后端部署

(一)jdk安装(离线安装)

​ (1)jdk1.8下载 所有资源统一下载到:/usr/local目录,如下图所示:
springboot项目部署到阿里云服务器(centos7)_第1张图片

​ (2)解压安装包 ​ 在这里插入图片描述
(3)配置环境变量

1.进入 /etc 目录找到profile文件

springboot项目部署到阿里云服务器(centos7)_第2张图片

2.编辑profile文件:vim profile

在profile文件最后加上:


export JAVA_HOME=/usr/local/jdk1.8.0_221

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$JAVA_HOME/bin:$PATH

在这里插入图片描述
springboot项目部署到阿里云服务器(centos7)_第3张图片

3.让配置生效(source /etc/profile)并检查jdk版本(java -version)

在这里插入图片描述

4.解释一下配置的环境变量

 (1)export JAVA_HOME=/usr/local/jdk1.8.0_221 :配置 JAVA_HOME路径(取决于jdk解压路径)

 (2)export JRE_HOME=$JAVA_HOME/jre: 配置jre路径

(3)export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:配置lib路径

(4)export PATH=$JAVA_HOME/bin:$PATH(系统指令文件路径路径):配置bin文件路径

  注意!!!:配置好Java环境变量后,一定要添加系统指令文件路径路径-->$PATH,否则原有的Linux命令将无法执行。

此处linux中的“:”等同于Windows中的";"

统指令文件路径路径-->$PATH,否则原有的Linux命令将无法执行。

此处linux中的“:”等同于Windows中的";"
(二)Tomcat安装(离线安装)

(1)tomcat下载 所有资源统一下载到:/usr/local目录,如下图所示:
springboot项目部署到阿里云服务器(centos7)_第4张图片
(2)解压安装包 ​
在这里插入图片描述
(3)启动tomcat
springboot项目部署到阿里云服务器(centos7)_第5张图片

  1. cd /usr/local/apache-tomcat-8.5.46/bin
  2. ./startup.sh(启动tomcat,“./”,启动命令相当于 run)
  3. tomcat默认端口号为8080
  4. 此时可以进行访问测试,在浏览器中输入:云服务器公网ip:8080 若如下图所示,则启动成功

springboot项目部署到阿里云服务器(centos7)_第6张图片
5.关掉tomcat服务在这里插入图片描述

ps -ef | grep tomcat  #查看tomcat进程信息,获取到pid

kill -9 pid #通过pid结束进程,关闭tomcat服务

6.启动失败原因呢
(1)阿里云防火墙未关闭
检查防火墙状态
systemctl status firewalld
springboot项目部署到阿里云服务器(centos7)_第7张图片
如果显示如上图所示:Active:active,说明防火墙已开启,需要关闭
关闭操作如下图(systemctl stop firewalld)
springboot项目部署到阿里云服务器(centos7)_第8张图片
(2)阿里云服务器未配置端口放行(安全组配置):即8080端口放行
具体配置方法大家可以在网上搜索,很容易找到教程
(3)端口冲突,即tomcat默认的端口8080已经被占用

解决方案:
a.关掉占用端口的进程,着个不建议使用,因为该进程可能有用,推荐用下面的方法
b.修改tomcat配置文件
在这里插入图片描述

进入编辑模式后,按“i”进入编辑模式
springboot项目部署到阿里云服务器(centos7)_第9张图片

改变端口号,我的是改成了"9999",注意,改完之后注意在阿里云服务器配置端口放行
修改之后再次启动tomcat
springboot项目部署到阿里云服务器(centos7)_第10张图片
此时可以进行访问测试,在浏览器中输入:公网ip:9999(修改后的端口号)

(三)Mysql安装(在线安装)

前面已经介绍了如何离线安装jdk和tomcat,所以mysql选择在线安装的方式
(1) 在线下载mysql rpm包
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

springboot项目部署到阿里云服务器(centos7)_第11张图片
(2)rpm安装mysql
rpm -ivh mysql57-community-release-el7-10.noarch.rpm
在这里插入图片描述

(3)通过yum安装mysql服务
yum -y install mysql-community-server
在这里插入图片描述
注意:如果提示如下
Public key for mysql-community-client-5.7.38-1.el7.x86_64.rpm is not installed
Failing package is: mysql-community-client-5.7.38-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

原因是Mysql的GPG升级了,需要重新获取
使用以下命令即可(可能会比较慢,如果失败,多试几次)

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

然后再重新安装mysql服务

yum -y install mysql-community-server

(4)加⼊开机启动
systemctl enable mysqld
在这里插入图片描述
(5)启动MySQL服务(systemctl start mysqld)并查看运行情况(lsof -i:3306)
在这里插入图片描述
补充:
使用lsof -i:3306命令时,如果提示:
-bash: lsof: command not found
说明linux没有这个命令
解决方式:
yum install -y lsof 或者 yum install lsof -y

(6)
停止mysql服务
systemctl stop mysqld
(7)查找mysql初始密码
cat /var/log/mysqld.log | grep password
(8)登录mysql
springboot项目部署到阿里云服务器(centos7)_第12张图片
如果出现红线标注的,说明登陆成功
如果未成功,显示连接失败,可能是因为没有开启mysql服务:
systemctl start mysqld(开启后再次登录)
(9)修改密码
a.设置密码的检查机制为LOW

set global validate_password_policy=LOW;(可自行设置)

b.设施改密码长度策略

 set global validate_password_length=6;(可自行设置长度)

springboot项目部署到阿里云服务器(centos7)_第13张图片
c.设置密码

set password=password('Yours Password');

d.授权远程登录
注意:将’Yours Password’改成自己设置的密码

GRANT ALL PRIVILEGES on *.* to 'root'@'%' IDENTIFIED by 'Yours Password' WITH GRANT 
OPTION;

刷新

flush PRIVILEGES;

(10)历经千辛万苦,终于安装完mysql接下来就可以使用工具进行连接测试
如Navicat等数据库连接工具
(11)迁移数据库文件
我是使用的Navicat工具连接的数据库,具体操作大家在网上搜索一下,不是很复杂。

(四)后端项目云部署(贼简单)

(1)上传以经打包好的jar包
我是在 /usr/local 下新建了一个fmmall文件夹,把jar包上传到这里了
springboot项目部署到阿里云服务器(centos7)_第14张图片
(2)运行jar文件
java -jar api-1.0-SNAPSHOT.jar (不允许在后台运行)

java -jar api-1.0-SNAPSHOT.jar &(允许在后台运行,使用这个)

注意:要在 /usr/local/fmmall 下使用此命令

(3)OK,后端跑起来了,是不是贼简单!!!

(4)要停止的话,更简单
lsof -i:8080(soringboot项目端口号) 查询到进程的pid

(5)然后干掉它

kill -9 pid

前端部署

后端部署终于结束了,说实话,打字挺累的,尤其是一边操作,一边改bug,一边记录。废话不多说,前端云部署,采用两种方式tomcat和nginx。

(一)tomcat方式部署前端项目

(1)将前端文件上传到到 /usr/local/apache-tomcat-9.0.59/webapps/ 下,如图所示
springboot项目部署到阿里云服务器(centos7)_第15张图片
(2)回到 /usr/local/apache-tomcat-9.0.59/bin 如图
在这里插入图片描述
(3).启动tomcat ./startup.sh
springboot项目部署到阿里云服务器(centos7)_第16张图片

(4)测试
http://阿里云公网ip:端口号(tomcat的端口号)/fmall-static/index.html

(5)使用tomcat虽然可以实现部署,但是由于大量静态资源都会向tomcat发送请求,造成前端tomcat服务器压力过大,所以不建议使用tomcat部署前端项目


(二)nginx方式部署前端项目
    要不先小小的介绍一手nginx。
    Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
    我剽窃的百科,大家想具体了解,可以查阅相关博客(是不是太敷衍了)。还是直奔主题,开始部署吧。
  安装nginx之前需要一些准备工作。

(1) 安装编译⼯具(nginx安装之前需要编译)

yum install -y gcc gcc-c++  #nginx使用C语言开发的

(2)安装PCRE
a.下载

wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

b.解压

tar -zxvf pcre-8.35.tar.gz

c.进⼊pcre⽬录

cd pcre-8.35

d.配置

./configure

e.编译安装

 make && make install

(3)安装SSL库

切记:要先回到 /usr/local 目录下 然后再安装

cd /usr/local

a.下载

wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz

注意 可能会报错

cannot verify www.openssl.org's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’:
Issued certificate has expired.
To connect to www.openssl.org insecurely, use `--no-check-certificate'.

解决:使用如下命令重新下载

wget --no-check-certificate http://www.openssl.org/source/openssl-1.0.1j.tar.gz

b.解压

tar -zxvf openssl-1.0.1j.tar.gz

c.进⼊pcre⽬录

cd openssl-1.0.1j

d.配置

./config

e.编译安装

 make && make install

(4)安装zlib库

切记:要先回到 /usr/local 目录下 然后再安装

cd /usr/local

a.下载

wget http://zlib.net/zlib-1.2.11.tar.gz

注意:上面的命令可能会失败,不过没关系,因为我试了n次,都没有成功,我在网上找了许多在线下载的链接都失败,不知道为什么,所以我最后决定用离线下载,如果你成功了,请忽略这段话。离线文件大家在官网就可以获取。
官网地址:https://www.zlib.net/

b.解压

 tar -zxvf zlib-1.2.12.tar.gz  #根据下载的文件决定(如果是从官网上自己下载的)

c.进⼊pcre⽬录

cd zlib-1.2.11 #根据下载的文件决定(如果是从官网上自己下载的)

d.配置

./configure

e.编译安装

 make && make install

(5)安装Nginx

切记:要先回到 /usr/local 目录下 然后再安装

cd /usr/local

a.下载

 wget http://nginx.org/download/nginx-1.16.1.tar.gz

b.解压

 tar -zxvf nginx-1.16.1.tar.gz

c.设置安装目录

 mkdir -p /usr/local/server/nginx

d.进入nginx安装包目录

 cd nginx-1.16.1

e.

 ./configure --prefix=/usr/local/server/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.35

注意:如果配置失败,报错:
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl= option.

使用如下命令:

yum -y install openssl openssl-devel

然后再次执行如下命令

 ./configure --prefix=/usr/local/server/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.35

f.编译安装

 make && make install

g. 检查nginx安装情况

cd /usr/local/server/nginx

注意:安装在 /usr/local/nginx-1.16.1 下的 nginx-1.16.1只是安装包
/usr/local/server/ 下的 nginx 才是真正的nginx

springboot项目部署到阿里云服务器(centos7)_第17张图片
h.测试
进入sbin目录

cd sbin

运行nginx

./nginx

检查运行i情况

lsof -i:80 #nginx默认端口号

springboot项目部署到阿里云服务器(centos7)_第18张图片

i.访问测试
直接在浏览器地址栏输入云服务器公网ip,如下图所示则启动成功
springboot项目部署到阿里云服务器(centos7)_第19张图片
j:关闭服务

查询到相应进程的pid

lsof -i:80

springboot项目部署到阿里云服务器(centos7)_第20张图片
删除掉对应进程

kill -9 pid

(5)完成nginx部署
a.将前端资源上传到nginx–>/usr/local/server/nginx

b.修改nginx配置文件: cd /usr/local/server/config

[root@szs conf]# cat -n nginx.conf|grep location
 
[root@szs conf]# vim +43 nginx.config(图中有误,以此处为准)

springboot项目部署到阿里云服务器(centos7)_第21张图片
修改如下
将root后面改成和图图示内容相同即可
springboot项目部署到阿里云服务器(centos7)_第22张图片
启动并检查nginx服务,具体操作如图所示
springboot项目部署到阿里云服务器(centos7)_第23张图片
(6)浏览器访问测试
云服务器公网ip/index.html(取决于前端资源 fmall-static中html文件的名字(随便一个测试效果即可))

总结

 额,也没啥好说的,感谢大家能看到这里,如果部署过程中遇到了问题,大家请在评论区@我,可能回复的比较晚,大家不要着急。

你可能感兴趣的:(spring,boot,服务器,阿里云)