CentOS 7离线部署Java Web环境全攻略

发布时间:2026/7/27 2:39:07
CentOS 7离线部署Java Web环境全攻略 1. 项目背景与核心需求在阿里云CentOS 7服务器上部署Java Web环境是许多开发团队的基础需求。由于生产环境的安全要求或特殊网络限制离线安装成为不少企业的刚需场景。这个方案完整解决了从JDK运行时、Tomcat应用服务器到MySQL数据库的全套环境搭建问题特别针对内网服务器无法连接外网的情况设计。我在金融行业IT架构升级项目中多次实施这类离线部署发现三个典型痛点依赖包缺失导致安装中断、系统库版本冲突、以及SELinux等安全机制引发的权限问题。本方案经过银行级生产环境验证包含12个关键检查点和7个常见报错解决方案。2. 准备工作与资源规划2.1 硬件资源建议最低配置1核CPU/2GB内存/20GB磁盘仅基础运行推荐配置2核CPU/4GB内存/50GB磁盘生产环境交换分区物理内存的1.5倍特别是MySQL服务器2.2 软件版本选型组件推荐版本兼容性说明JDK1.8.0_381长期支持版(LTS)Tomcat8.5.89兼容Servlet 3.1/JSP 2.3规范MySQL5.7.42最稳定的5.7系列最终版重要提示MySQL 8.0需要额外处理libaio依赖5.7版本对离线环境更友好2.3 离线包准备清单基础依赖包共23个libaio-0.3.109-13.el7.x86_64.rpmnumactl-libs-2.0.12-5.el7.x86_64.rpm...主安装包jdk-8u381-linux-x64.tar.gzapache-tomcat-8.5.89.tar.gzmysql-5.7.42-1.el7.x86_64.rpm-bundle.tar校验工具md5sum.txt包含所有包的哈希值offline_install_check.sh环境检测脚本3. 分步安装指南3.1 JDK离线部署# 解压到标准目录 tar -zxvf jdk-8u381-linux-x64.tar.gz -C /usr/local/ # 设置环境变量永久生效 cat EOF /etc/profile export JAVA_HOME/usr/local/jdk1.8.0_381 export PATH\$JAVA_HOME/bin:\$PATH EOF # 立即生效配置 source /etc/profile常见问题处理若出现bash: java: command not found检查/usr/local/下JDK目录权限应为755/etc/profile修改后未执行source用户shell是否是bashzsh需要修改~/.zshrc3.2 Tomcat服务配置# 解压并创建专用用户 tar -xvf apache-tomcat-8.5.89.tar.gz -C /opt/ useradd -r -s /bin/false tomcat chown -R tomcat:tomcat /opt/apache-tomcat-8.5.89 # 创建systemd服务单元 cat /etc/systemd/system/tomcat.service EOF [Unit] DescriptionApache Tomcat 8.5 Aftersyslog.target network.target [Service] Usertomcat Grouptomcat ... EOF关键安全设置关闭manager应用删除webapps/manager目录修改shutdown端口编辑conf/server.xml禁用AJP连接器注释掉8009端口配置3.3 MySQL深度安装3.3.1 依赖解决技巧# 手动安装依赖示例 rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm \ --nodeps --force3.3.2 主安装流程tar -xvf mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar rpm -ivh mysql-community-common-5.7.42-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.42-1.el7.x86_64.rpm ...3.3.3 安全初始化# 获取临时密码 grep temporary password /var/log/mysqld.log # 执行安全脚本 mysql_secure_installation4. 避坑指南实录4.1 权限问题大全现象解决方案Tomcat无法写入日志chcon -R -t tomcat_log_t /opt/apache-tomcat-8.5.89/logsMySQL启动报错mysqld_saferestorecon -Rv /var/lib/mysql4.2 内存优化参数在/opt/apache-tomcat-8.5.89/bin/setenv.sh中添加export JAVA_OPTS-Xms512m -Xmx1024m -XX:MaxMetaspaceSize256m4.3 MySQL性能调优编辑/etc/my.cnf关键参数[mysqld] innodb_buffer_pool_size 1G innodb_log_file_size 256M skip-name-resolve5. 验证与监控方案5.1 基础验证命令# JDK验证 java -version javac -version # Tomcat验证 curl -I http://localhost:8080 # MySQL验证 mysqladmin -uroot -p version5.2 监控脚本示例创建/usr/local/bin/check_env.sh#!/bin/bash # 检查Java进程 pgrep -x java || echo Java进程异常 | mail -s 告警 adminexample.com # 检查MySQL连接 mysql -uroot -p$PASS -e SELECT 1 || systemctl restart mysqld实际部署中发现阿里云CentOS 7的默认yum源有时会缺少libnuma.so.1库建议提前准备numactl-libs的rpm包。另外在低内存实例上安装MySQL时可以临时添加swap空间避免OOM killer终止安装进程dd if/dev/zero of/swapfile bs1M count2048 chmod 600 /swapfile mkswap /swapfile swapon /swapfile