旧博客打包部署流程

“AL小站”博客简介

  • 这是一个前后端不分离的web项目 , 已失效的链接 AL's Blog
  • 前端:semantic-ui组件库,thymeleaf模板引擎
  • 后端:springboot、mybatis-plus

0、前置条件

  • 有一台云服务器

  • 云服务器上面安全组配置,要打开一些端口号(http、mysql等等对应的不同端口),如图:

    安全组配置

1、打包步骤

1.1 移除springboot内嵌的tomcat

修改pom.xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- 移除原本自带的tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 添加servle依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>compile</scope>
</dependency>
### 1.2 设置打包的方式 依旧是pom.xml文件,设置打包导出war
1
2
3
4
5
<groupId>com.aidan</groupId>
<artifactId>albog-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>albog-server</name>

1.3 启动类继承SpringBootServletInitializer

修改后的启动类代码

1
2
3
4
5
6
7
8
9
10
11
@SpringBootApplication
@MapperScan("com.aidan.alblogserver.mapper")
public class AlblogServerApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){
return super.configure(builder);
}
public static void main(String[] args) {
SpringApplication.run(AlblogServerApplication.class, args);
}
}

1.4 打包成war

idea里面依次点击clean-package,如下图: "idea中的按钮"

idea操作位置

工程文件夹下的target里面生成了对应的war包。

war包位置

至此,完成了打包过程。

2、服务器环境配置

  • 目标服务器环境(Centos7)
  • war传到服务器之前,先准备好环境,包括以下内容:
  • mysql
  • jdk
  • tomcat

2.1 安装MySQL

卸载Centos7自带mariadb

1
2
3
4
5
# 查找
rpm -qa|grep mariadb
# mariadb-libs-5.5.52-1.el7.x86_64
# 卸载
rpm -e mariadb-libs-5.5.52-1.el7.x86_64 --nodeps
解压mysql
1
2
3
4
# 创建mysql安装包存放点
mkdir /usr/server/mysql
# 解压
tar xvf mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar
执行安装
1
2
3
4
5
6
7
8
9
10
# 切换到安装目录
cd /usr/server/mysql/
yum -y install libaio
yum -y install libncurses*
yum -y install perl perl-devel
# 安装
rpm -ivh mysql-community-common-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.34-1.el7.x86_64.rpm

修改密码

1
2
3
4
5
6
7
8
9
10
11
#启动mysql
systemctl start mysqld.service
#查看生成的临时root密码
cat /var/log/mysqld.log | grep password
# 登录mysql
mysql -u root -p
Enter password: #输入在日志中生成的临时密码
# 更新root密码 设置为root
set global validate_password_policy=0;
set global validate_password_length=1;
set password=password('root');
授予远程连接权限
1
2
3
4
grant all privileges on *.* to 'root' @'%' identified by 'root';
# 刷新
flush privileges;

控制命令
1
2
3
4
5
6
7
8
#mysql的启动和关闭 状态查看
systemctl stop mysqld
systemctl status mysqld
systemctl start mysqld
#建议设置为开机自启动服务
systemctl enable mysqld
#查看是否已经设置自启动成功
systemctl list-unit-files | grep mysqld
关闭防火墙
1
2
3
firewall-cmd --state #查看防火墙状态
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

2.2 配置JDK

下载JDK,登录官方https://www.oracle.com/java/technologies/downloads/#java8 下载所需版本的JDK,版本为JDK 1.8,如图:

jdk下载包

解压

1
tar -zvxf jdk-8u131-linux-x64.tar.gz
编辑 /etc/profile 文件
1
2
3
4
vi /etc/profile
# 文件末尾增加
export JAVA_HOME=/usr/server/jdk1.8.0_131
export PATH=${JAVA_HOME}/bin:$PATH
执行source命令,使配置立即生效
1
source /etc/profile
检查是否安装成功
1
java -version

2.3 安装tomcat

官网地址:https://tomcat.apache.org/ 将下载的apache-tomcat-8.5.86.tar.gz安装包放在服务器的/usr/home/download目录,并解压

1
2
3
4
# 进入/usr/local/download目录
cd /usr/local/download
# 解压Tomcat压缩包
tar -zxvf apache-tomcat-8.5.86.tar.gz

进入Tomcat的bin目录,启动Tomcat

1
2
3
4
5
# 进入Tomcat的bin目录,启动Tomcat
cd apache-tomcat-8.5.86/bin/

# 启动Tomcat
./startup.sh
使用浏览器访问Tomcat,地址Linux的ip:8080,若成功可以看到tomcat的欢迎页面,之后在war上传前先关闭tomcat:
1
2
# 暂时先关闭Tomcat
./shutdown.sh
配置tomcat环境变量
1
vi /etc/profile
最后几行现在变成这样
1
2
3
4
export CATALINA_BASE=/home/download/apache-tomcat-8.5.86
export CATALINA_HOME=/home/download/apache-tomcat-8.5.86
export JAVA_HOME=/usr/server/jdk8/jdk1.8.0_192
export PATH=${JAVA_HOME}/bin:$PATH
记得再source一下配置文件!

3、部署过程

注意:当前tomcat处于关闭状态

3.1 删除原本tomcat文件夹下的ROOT目录

进入tomcat的webapps文件夹,删除其下ROOT文件夹

1
2
cd apache-tomcat-8.5.86/webapps
rm -rf ROOT

3.2 上传war包到webapps文件夹

将war上传到webapps文件夹,修改war名为ROOT.war。 启动tomcat:

1
2
3
4
# 进入Tomcat的bin目录,启动Tomcat
cd apache-tomcat-8.5.86/bin/
# 启动Tomcat
./startup.sh
此时,会自动解压该war包,生成一个新的ROOT文件夹。 至此,终于完成部署!通过IP:端口号可以访问博客服务

4、tomcat的端口设置

由于最终是想通过域名进行访问,而不是ip:端口方式,因此后续会进行域名的解析,但是解析无法到解析端口,用户访问域名时会默认访问80端口

  • 方案1:ngnix进行端口转发(略)
  • 方案2:设置项目的port为80,修改tomcat默认端口 由于博主很懒,采用了方案2,步骤如下:

4.1 修改项目application.yml

1
2
server:
port: 80

4.2 修改tomcat的配置

1
2
3
4
# 假设已经在tomcat目录,进入tomcat的conf目录
cd conf
# 编辑server.xml
vi server.xml

将如下几行8080修改为80

1
2
3
4
5
6
7
8

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- A "Connector" using the shared thread pool-->
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
redirectPort="8443" />
关闭再重启tomcat服务,完成!


旧博客打包部署流程
https://al-377.github.io/2023/09/17/old-blog-package-deploy/
作者
Aidan Lew
发布于
2023年9月17日
许可协议