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)

相关推荐
砍光二叉树2 小时前
【设计模式】行为型-责任链模式
java·设计模式·责任链模式
feng_you_ying_li2 小时前
linux开发工具的介绍(5)
linux·运维·centos
Lugas Luo2 小时前
Kernel 5.10 SD卡专属探测、上电与注册流程分析 (Detect -> Power Up -> Add)
linux·嵌入式硬件
艾莉丝努力练剑2 小时前
【Linux信号】Linux进程信号(下):可重入函数、Volatile关键字、SIGCHLD信号
linux·运维·服务器·c++·人工智能·后端·学习
kiki_24112 小时前
用IntelliJ IDEA编写Java程序,从0到1完整教程
java·ide·intellij-idea
liuyao_xianhui2 小时前
优选算法_锯齿形层序遍历二叉树_队列_C++
java·开发语言·数据结构·c++·算法·链表
si莉亚2 小时前
2026.3.31成功安装Ubuntu22.04+ROS2记录
linux·c++·开源
上海云盾安全满满2 小时前
服务器很卡,是CC攻击造成的吗
运维·服务器·网络
八宝粥大朋友2 小时前
Android sqlite3 编译及安装
android·java·sqlite