Zrlog博客的系统部署

一.全过程

在 RHEL/CentOS/Rocky Linux 9.x 系统(目标主机 172.25.254.100)上,通过「JDK11+Maven3.9.6」编译 ZrLog 源码生成 War 包,搭配 MariaDB(数据库)+Tomcat10(应用容器)+Nginx(反向代理)完成部署,最终实现浏览器访问 ZrLog 博客系统。

源码 → Maven 构建(依赖下载 + 编译 + 打包)→ War 包 → Tomcat 部署 → Nginx 反向代理 → 浏览器访问;

所需要的安装包

二.前置环境准备

2.1 安装并配置 JDK 1

解压并配置全局环境变量

生效并验证

2.2 安装 Maven + 配置阿里云镜像(关键优化)

解压并 配置全局环境变量

修改配置文件

vim /root/maven/conf/settings.xml

输出Maven版本即成功

pom.xml(Project Object Model,项目对象模型)是 Maven项目的"灵魂配置文件",用于定义项目的所有核心信息,是Maven构建、依赖管理、打包的唯一依据(实验中核心作用是解决"无War包""依赖下载"问题)。

三.Maven 构建 ZrLog War 包(核心步骤)

3.1解压 ZrLog 源码压缩包

定位 pom.xml 并执行构建

写入全新的独立pom.xml(无需父POM,直接构建War包)

cat > /root/zrlog-src/META-INF/maven/com.hibegin/package/pom.xml << 'EOF'

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<!-- 手动定义项目基本信息(替代父POM) -->

<groupId>com.hibegin</groupId>

<artifactId>zrlog-web</artifactId>

<version>3.3.0</version>

<packaging>war</packaging>

<name>ZrLog Web</name>

<description>ZrLog Blog System</description>

<!-- 核心依赖(覆盖父POM的关键依赖) -->

<dependencies>

<!-- Servlet & JSP 核心 -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>4.0.1</version>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>javax.servlet.jsp</groupId>

<artifactId>jsp-api</artifactId>

<version>2.2</version>

<scope>provided</scope>

</dependency>

<!-- Java EE 基础 -->

<dependency>

<groupId>javax</groupId>

<artifactId>javaee-api</artifactId>

<version>8.0.1</version>

<scope>provided</scope>

</dependency>

<!-- 数据库驱动(ZrLog核心依赖) -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>8.0.33</version>

</dependency>

<!-- 日志依赖 -->

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

<version>1.7.36</version>

</dependency>

<dependency>

<groupId>ch.qos.logback</groupId>

<artifactId>logback-classic</artifactId>

<version>1.2.13</version>

</dependency>

</dependencies>

<!-- 构建配置(确保能打出可运行的War包) -->

<build>

<finalName>zrlog</finalName>

<plugins>

<!-- 编译插件(适配JDK11) -->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.8.1</version>

<configuration>

<source>11</source>

<target>11</target>

<encoding>UTF-8</encoding>

</configuration>

</plugin>

<!-- War包插件(忽略缺失web.xml) -->

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-war-plugin</artifactId>

<version>3.3.2</version>

<configuration>

<failOnMissingWebXml>false</failOnMissingWebXml>

<!-- 指向ZrLog的源码/资源目录(关键) -->

<webResources>

<resource>

<directory>/root/zrlog-src</directory>

<includes>

<include>WEB-INF/**/*</include>

<include>META-INF/**/*</include>

<include>**/*.jsp</include>

<include>**/*.html</include>

<include>**/*.css</include>

<include>**/*.js</include>

</includes>

</resource>

</webResources>

</configuration>

</plugin>

</plugins>

</build>

</project>

EOF

执行Maven打包(-DskipTests跳过测试,加快构建速度)

控制台输出 BUILD SUCCESS,并在 target/ 目录下生成 zrlog-3.3.0.war(文件名含版本号)

3.2安装数据库 / 反向代理 / 应用容器

**1.**基础工具依赖

dnf install -y wget unzip tar vim net-tools

2. MariaDB 数据库部署

dnf install -y mariadb-server mariadb

systemctl start mariadb && systemctl enable mariadb

创建ZrLog专用库和用户

3. Nginx 反向代理部署

dnf install -y nginx

写入优化配置

启动并开机自启

systemctl start nginx && systemctl enable nginx

验证配置有无报错

四.部署 War 包到 Tomcat

4.1配置Tomcat内存参数

4.2复制 War 包并清理旧数据

回到Maven构建目录

cd /root/zrlog-src/META-INF/maven/com.hibegin/package/

复制War包到Tomcat webapps目录,重命名为ROOT.war(直接访问根路径)

cp target/zrlog.war /root/tomcat10/webapps/ROOT.war

清理Tomcat旧解压文件(避免冲突)

rm -rf /root/tomcat10/webapps/ROOT

4.3启动 Tomcat 并验证

五.验证

在浏览器中进行验证(输入主机ip)

相关推荐
pengyi8710155 分钟前
私网IP映射公网基础原理,搭配代理IP远程访问入门
linux·服务器·网络
aq553560012 分钟前
编程语言三巨头:汇编、C++与PHP大比拼
java·开发语言
mseaspring32 分钟前
一款用于监控跨多台主机 Docker 容器的实时终端
运维·docker·容器
我是无敌小恐龙32 分钟前
Java SE 零基础入门Day01 超详细笔记(开发前言+环境搭建+基础语法)
java·开发语言·人工智能·opencv·spring·机器学习
深圳市九鼎创展科技1 小时前
MT8883 vs RK3588 开发板全面对比:选型与场景落地指南
大数据·linux·人工智能·嵌入式硬件·ubuntu
NineData1 小时前
NineData 亮相香港国际创科展 InnoEX 2026,以 AI 加速布局全球市场
运维·数据库·人工智能·ninedata·新闻资讯·玖章算术
心态与习惯1 小时前
Julia 初探,及与 C++,Java,Python 的比较
java·c++·python·julia·比较
考虑考虑1 小时前
SQL语句中的order by可能造成时间重复
数据库·后端·mysql
一叶飘零_sweeeet1 小时前
优秀文章合集
java
zopple2 小时前
ThinkPHP5.x与3.x核心差异解析
java·python·php