Zrolg项目部署
一、前置环境准备JDK Maven 基础依赖1.1 安装并配置 JDK 11# 1. 上传 jdk-11.tar.gz 到 /root 目录执行解压cd /roottar -zxf jdk-11_linux-x64_bin.tar.gzmv jdk-11 jdk11# 2. 配置全局环境变量永久生效cat /etc/profile.d/jdk.sh EOFexport JAVA_HOME/root/jdk11export PATH$JAVA_HOME/bin:$PATHexport CLASSPATH.:$JAVA_HOME/libEOF# 3. 生效并验证source /etc/profile.d/jdk.shjava -version # 输出JDK版本即成功输出了jdk版本# 1. 下载 Maven 3.9.6适配JDK 111.2 安装 Maven 配置阿里云镜像关键优化cd /rootwget https://archive.apache.org/dist/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz# 2. 解压并重命名rootzrlog ~]# tar -zxf apache-maven-3.9.14-bin.tar.gz[rootzrlog ~]# mv apache-maven-3.9.14 maven# 3. 配置全局环境变量cat /etc/profile.d/maven.sh EOFexport MAVEN_HOME/root/mavenexport PATH$MAVEN_HOME/bin:$PATHEOFsource /etc/profile.d/maven.shmvn -version # 输出Maven版本即成功[rootzrlog package]# vim /root/maven/conf/settings.xml.....mirroridtencentmaven/idmirrorOfcentral/mirrorOfurlhttps://maven.aliyun.com/repository/public//url/mirror....二、Maven 构建 ZrLog War 包核心步骤2.1 解压 ZrLog 源码压缩包cd /root# 解压到指定目录避免文件混乱unzip -q zrlog-3.3.0-1811fd7-release.zip -d zrlog-srccd zrlog-src2.2 定位 pom.xml 并执行构建# 进入pom.xml所在目录根据你的压缩包结构[rootdev ~]# find /root/zrlog-src/ -name pom.xml/root/zrlog-src/META-INF/maven/com.hibegin/package/pom.xml# 配置阿里云镜像解决依赖下载慢/失败mv /root/zrlog-src/META-INF/maven/com.hibegin/package/pom.xml /root/zrlog-src/META-INF/maven/com.hibegin/package/pom.xml.bak# 写入全新的独立pom.xml无需父POM直接构建War包cat /root/zrlog-src/META-INF/maven/com.hibegin/package/pom.xml EOF?xml version1.0 encodingUTF-8?project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion!-- 手动定义项目基本信息替代父POM --groupIdcom.hibegin/groupIdartifactIdzrlog-web/artifactIdversion3.3.0/versionpackagingwar/packagingnameZrLog Web/namedescriptionZrLog Blog System/description!-- 核心依赖覆盖父POM的关键依赖 --dependencies!-- Servlet JSP 核心 --dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion4.0.1/versionscopeprovided/scope/dependencydependencygroupIdjavax.servlet.jsp/groupIdartifactIdjsp-api/artifactIdversion2.2/versionscopeprovided/scope/dependency!-- Java EE 基础 --dependencygroupIdjavax/groupIdartifactIdjavaee-api/artifactIdversion8.0.1/versionscopeprovided/scope/dependency!-- 数据库驱动ZrLog核心依赖 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.33/version/dependency!-- 日志依赖 --dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion1.7.36/version/dependencydependencygroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactIdversion1.2.13/version/dependency/dependencies!-- 构建配置确保能打出可运行的War包 --buildfinalNamezrlog/finalNameplugins!-- 编译插件适配JDK11 --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationsource11/sourcetarget11/targetencodingUTF-8/encoding/configuration/plugin!-- War包插件忽略缺失web.xml --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-war-plugin/artifactIdversion3.3.2/versionconfigurationfailOnMissingWebXmlfalse/failOnMissingWebXml!-- 指向ZrLog的源码/资源目录关键 --webResourcesresourcedirectory/root/zrlog-src/directoryincludesincludeWEB-INF/**/*/includeincludeMETA-INF/**/*/includeinclude**/*.jsp/includeinclude**/*.html/includeinclude**/*.css/includeinclude**/*.js/include/includes/resource/webResources/configuration/plugin/plugins/build/projectEOF[rootdev ~]# cd /root/zrlog-src/META-INF/maven/com.hibegin/package/# 执行Maven打包-DskipTests跳过测试加快构建速度mvn clean package -DskipTests控制台输出BUILD SUCCESS并在target/目录下生成zrlog-3.3.0.war文件名含版本号。2.3 安装数据库 / 反向代理 / 应用容器# 1. 基础工具依赖dnf install -y wget unzip tar vim net-tools# 2. MariaDB 数据库部署dnf install -y mariadb-server mariadbsystemctl start mariadb systemctl enable mariadb# 创建ZrLog专用库和用户mysql -u root -e CREATE DATABASE zrlog DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER zrlog% IDENTIFIED BY zrlog123456;GRANT ALL PRIVILEGES ON zrlog.* TO zrlog%;FLUSH PRIVILEGES;# 3. Nginx 反向代理部署dnf install -y nginx# 写入优化配置cat /etc/nginx/conf.d/zrlog.conf EOFserver {listen 80;server_name _;charset utf-8;client_max_body_size 100M;# 反向代理Tomcatlocation / {#反向代理核心转发请求到Tomcat的8080端口proxy_pass http://127.0.0.1:8080;#把用户请求中的 Host 头比如用户访问的域名 / IP传递给后端 Tomcat。proxy_set_header Host $host;#把真实的客户端 IP 传递给后端 Tomcat。proxy_set_header X-Real-IP $remote_addr;#传递 “IP 转发链”适配多层代理场景。proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#设置 Nginx 与后端 Tomcat 建立连接的超时时间60 秒proxy_connect_timeout 60s;#设置 Nginx 等待后端 Tomcat 响应数据的超时时间60 秒。proxy_read_timeout 60s;}}EOF# 启动并开机自启systemctl start nginx systemctl enable nginxnginx -t # 验证配置无报错# 4. Tomcat 9 部署cd /root[rootdev ~]# tar -zxf apache-tomcat-10.1.52.tar.gz[rootdev ~]# mv apache-tomcat-10.1.52 tomcat10[rootdev ~]## 配置Tomcat内存参数cat /root/tomcat10/bin/setenv.sh EOFexport JAVA_HOME/root/jdk11export CATALINA_OPTS-Xms512m -Xmx1024mEOFchmod x /root/tomcat10/bin/*.sh三、部署 War 包到 Tomcat3.1 复制 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/ROOT3.2 启动 Tomcat 并验证# 启动Tomcat /root/tomcat10/bin/startup.sh # 查看启动日志确认War包解压、服务无报错 tail -f /root/tomcat10/logs/catalina.out✅ 启动成功标识日志中出现Server startup in XXX ms且无ERROR级日志。四、Web 端安装与访问4.1 访问地址http://192.168.223.20 Nginx反向代理80端口无需加80804.2 安装向导配置数据库信息五、问题排查方法总结本次优化核心补充新增Maven 阿里云镜像配置彻底解决国内网络下依赖下载失败 / 慢的问题明确pom.xml路径和构建命令适配你的压缩包结构补充构建 / 启动失败的排查方案降低部署风险所有命令可直接复制执行无需手动修改路径仅需替换服务器 IP。