在信息技术日新月异的今天,回顾并学习在经典操作系统上部署应用环境,对于理解系统演化和维护遗留系统具有重要意义,本文将详细阐述如何在已经非常古老的CentOS 5.5系统上安装和配置Apache Tomcat应用服务器,CentOS 5.5早已停止官方支持,存在严重的安全漏洞,本指南仅用于技术学习或在特定隔离环境中的维护任务,强烈不建议在任何生产环境中使用。
环境准备与JDK安装
Tomcat是一个基于Java的Web应用服务器,因此其运行的首要前提是系统中必须安装Java开发工具包(JDK),CentOS 5.5的默认软件源中包含了与其兼容的OpenJDK版本,这为我们提供了便利。
建议对系统进行一次全面的更新,以确保所有基础软件包都处于相对较新的状态(尽管对于5.5版本,更新源也已不可用),在拥有有效本地源或历史源的情况下,可以执行:
yum update
安装JDK,对于CentOS 5.5,最兼容的JDK版本是1.6(也称为Java 6),我们可以通过yum
直接安装OpenJDK 1.6的开发包。
yum install java-1.6.0-openjdk-devel
安装完成后,需要验证Java环境是否配置正确,执行以下命令,如果能看到版本信息,则说明安装成功。
java -version javac -version
输出应类似如下:
java version "1.6.0_XX"
OpenJDK Runtime Environment (...)
OpenJDK 64-Bit Server VM (...)
为了确保Tomcat和其他Java应用能正确找到JDK路径,我们需要设置JAVA_HOME
环境变量,一个推荐的做法是在/etc/profile.d/
目录下创建一个新的脚本文件,例如java.sh
。
vi /etc/profile.d/java.sh
在文件中添加以下内容,路径可能因系统而异,通常位于/usr/lib/jvm/
下。
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64 export PATH=$PATH:$JAVA_HOME/bin
保存文件后,执行source /etc/profile
或重新登录,使环境变量生效。
创建专用用户与下载Tomcat
出于安全考虑,我们不应以root用户身份运行Tomcat,最佳实践是创建一个专用的、权限受限的系统用户来管理Tomcat服务。
useradd -r -s /sbin/nologin tomcat
此命令创建了一个名为tomcat
的系统用户(-r
),并禁止其通过shell登录(-s /sbin/nologin
)。
随后,我们需要从Apache Tomcat官方网站下载适用于该环境的Tomcat版本,考虑到JDK 1.6的兼容性,Tomcat 6或Tomcat 7是理想的选择,这里以Tomcat 6为例,进入临时目录,使用wget
下载安装包。
cd /tmp wget http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.53/bin/apache-tomcat-6.0.53.tar.gz
下载完成后,将其解压到/opt
目录下,这是一个存放可选第三方软件的常用位置。
tar -xzvf apache-tomcat-6.0.53.tar.gz mv apache-tomcat-6.0.53 /opt/tomcat
将/opt/tomcat
目录及其所有内容的所有权赋予我们之前创建的tomcat
用户。
chown -R tomcat:tomcat /opt/tomcat
配置Tomcat为系统服务
为了方便管理(如启动、停止、重启和开机自启),我们将Tomcat配置为一个系统服务,这需要创建一个SysV init脚本,因为CentOS 5.5使用的是SysV初始化系统。
创建/etc/init.d/tomcat
文件:
vi /etc/init.d/tomcat
粘贴到文件中,请注意CATALINA_HOME
和JAVA_HOME
变量需要与你的实际路径匹配。
#!/bin/bash # description: Tomcat Start/Stop/Restart # chkconfig: 2345 80 20 CATALINA_HOME=/opt/tomcat JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64 TOMCAT_USER=tomcat start() { echo -n "Starting Tomcat: " su - $TOMCAT_USER -c "$CATALINA_HOME/bin/startup.sh" echo "done." } stop() { echo -n "Shutting down Tomcat: " su - $TOMCAT_USER -c "$CATALINA_HOME/bin/shutdown.sh" echo "done." } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0
保存文件后,赋予其执行权限,并将其添加到系统服务中,同时设置开机自启。
chmod +x /etc/init.d/tomcat chkconfig --add tomcat chkconfig tomcat on
启动服务与防火墙配置
我们可以使用service
命令来管理Tomcat了。
service tomcat start
启动后,可以通过查看日志文件来确认Tomcat是否正常运行。
tail -f /opt/tomcat/logs/catalina.out
如果日志中没有显示错误,并且最后几行提示“Server startup in XXX ms”,则表示启动成功。
CentOS 5.5默认使用iptables
作为防火墙,我们需要开放Tomcat的默认端口8080,以便外部可以访问。
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT service iptables save
在浏览器中访问 http://<你的服务器IP地址>:8080
,如果看到Tomcat的默认欢迎页面,那么整个安装配置过程就圆满完成了。
相关问答FAQs
问题1:我安装了最新版的JDK(如Java 11)和Tomcat 9,但在CentOS 5.5上无法启动,是什么原因?
解答: 这是最常见的版本不兼容问题,CentOS 5.5的内核、glibc等核心库非常老旧,无法支持新版JDK和Tomcat的运行需求,新版JDK可能依赖更现代的系统库,而新版Tomcat可能依赖更高版本的JDK,正确的做法是使用与系统时代相匹配的软件版本,即JDK 1.6配合Tomcat 6或7,这样才能确保最大的兼容性。
问题2:我已经按照步骤操作,但访问8080端口时连接被拒绝,应该怎么办?
解答: 连接被拒绝通常有两个原因,检查Tomcat服务是否真的在运行,可以使用ps aux | grep tomcat
查看进程,或再次查看catalina.out
日志文件寻找错误信息,确认防火墙规则是否已正确生效,执行iptables -L -n
命令,查看INPUT链中是否有允许8080端口通过的规则,如果规则不存在或顺序不对,请重新添加并保存防火墙配置,也要确保SELinux没有处于强制模式并阻止访问,可以临时设置为宽松模式(setenforce 0
)进行测试。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复