在Linux系统下启动Tomcat是Java Web应用部署的基础操作,整个过程涉及环境准备、服务启动、配置检查及问题排查等环节,以下从环境配置到启动操作,再到常见问题处理,详细说明完整流程。
环境准备:确保Java与Tomcat就绪
Tomcat是Java应用服务器,依赖Java运行环境(JRE)或Java开发工具包(JDK),启动前需确认Java环境已正确配置,并准备好Tomcat安装包。
检查Java环境
Linux系统需安装JDK 8或更高版本(Tomcat 10需JDK 11+),通过以下命令检查Java是否安装及版本:
java -version
若未安装,以Ubuntu/Debian系统为例,使用apt
安装:
sudo apt update sudo apt install openjdk-11-jdk -y
CentOS/RHEL系统则使用yum
:
sudo yum install java-11-openjdk-devel -y
安装后需配置JAVA_HOME
环境变量(若未自动配置),编辑/etc/profile
文件:
sudo vim /etc/profile
在文件末尾添加:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 根据实际安装路径调整 export PATH=$JAVA_HOME/bin:$PATH
保存后执行source /etc/profile
使配置生效,再次运行java -version
确认输出版本信息。
安装Tomcat
从Apache Tomcat官网(https://tomcat.apache.org/)下载对应版本的tar.gz安装包(如Tomcat 10),或使用wget
命令下载:
wget https://archive.apache.org/dist/tomcat/tomcat-10/v10.1.15/bin/apache-tomcat-10.1.15.tar.gz
下载后解压到指定目录(如/opt
):
sudo tar -zxvf apache-tomcat-10.1.15.tar.gz -C /opt/ sudo mv /opt/apache-tomcat-10.1.15 /opt/tomcat10 # 重命名方便管理
设置Tomcat目录权限(避免因权限问题导致启动失败):
sudo chown -R $USER:$USER /opt/tomcat10 # 将所有者改为当前用户 chmod +x /opt/tomcat10/bin/*.sh # 赋予bin目录下脚本执行权限
启动Tomcat服务
Tomcat启动方式分为前台启动和后台启动,根据实际需求选择。
前台启动(适合调试)
进入Tomcat的bin
目录,执行startup.sh
脚本:
cd /opt/tomcat10/bin ./startup.sh
启动后终端会输出类似信息:
Using CATALINA_BASE: /opt/tomcat10
Using CATALINA_HOME: /opt/tomcat10
Using CATALINA_TMPDIR: /opt/tomcat10/temp
Using JRE_HOME: /usr/lib/jvm/java-11-openjdk-amd64
Using CLASSPATH: /opt/tomcat10/bin/bootstrap.jar:/opt/tomcat10/bin/tomcat-juli.jar
Tomcat started.
此时Tomcat进程会占用终端,关闭终端或按Ctrl+C
会停止服务,适合临时调试或查看启动日志。
后台启动(适合生产环境)
若需让Tomcat在后台持续运行,可使用nohup
命令结合&
符号:
nohup ./startup.sh > /opt/tomcat10/logs/startup.log 2>&1 &
参数说明:
nohup
:忽略挂断信号,即使关闭终端进程仍继续运行;>
:将标准输出重定向到startup.log
文件;2>&1
:将错误输出合并到标准输出;&
:让进程在后台执行。
启动后可通过ps
命令查看Tomcat进程:
ps -ef | grep tomcat
若看到包含org.apache.catalina.startup.Bootstrap
的进程,则表示启动成功。
常用Tomcat管理命令
Tomcat的bin
目录提供多个管理脚本,以下是常用命令及其作用:
命令 | 作用说明 | 示例 |
---|---|---|
./startup.sh |
启动Tomcat服务(前台/后台) | nohup ./startup.sh & |
./shutdown.sh |
正常停止Tomcat服务 | ./shutdown.sh |
./catalina.sh run |
前台启动并实时打印日志(适合调试) | ./catalina.sh run |
./version.sh |
查看Tomcat版本信息 | ./version.sh |
验证Tomcat启动状态
启动后需通过访问服务、检查端口及日志确认Tomcat正常运行。
浏览器访问
在浏览器地址栏输入http://Linux服务器IP:8080
(若本地测试则为http://localhost:8080
),若看到Tomcat默认欢迎页面(带有“Tomcat Version 10.1.15”等字样的页面),则表示启动成功。
检查端口监听
Tomcat默认监听8080
端口,使用netstat
或ss
命令检查端口是否被占用:
netstat -tuln | grep 8080 # 或 ss -tuln | grep 8080
若输出类似tcp6 0 0 :::8080 :::* LISTEN
,则表示端口正常监听。
查看启动日志
Tomcat的日志文件存放在logs
目录,关键日志包括:
catalina.out
:记录Tomcat启动、运行及错误信息(前台启动时实时打印);localhost.log
:Web应用访问日志;startup.log
:后台启动时的启动日志(通过nohup
重定向的文件)。
实时查看日志可使用tail
命令:
tail -f /opt/tomcat10/logs/catalina.out
若启动过程中出现错误,日志会提示具体原因(如内存不足、端口冲突等)。
常见问题排查
启动Tomcat时可能遇到问题,以下是典型错误及解决方法:
错误提示 | 可能原因 | 解决方法 |
---|---|---|
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined | 未配置JAVA_HOME 环境变量 |
编辑/etc/profile 或~/.bashrc ,添加JAVA_HOME 并执行source |
Port 8080 is already in use | 8080端口被其他进程占用 | 执行netstat -tuln | grep 8080 找到占用进程,用kill 命令终止;或修改server.xml 中的端口号 |
Permission denied | 脚本无执行权限或Tomcat目录权限不足 | 执行chmod +x /opt/tomcat10/bin/*.sh 和chown -R $USER:$USER /opt/tomcat10 |
Catalina.startup.Bootstrap fail | JVM内存不足或Java版本不兼容 | 检查Java版本是否符合Tomcat要求,或在catalina.sh 中调整JVM内存参数(如export JAVA_OPTS="-Xms512m -Xmx1024m" ) |
配置优化(可选)
修改默认端口
编辑conf/server.xml
文件,找到<Connector>
标签,修改port
属性:
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
保存后重启Tomcat,访问端口变为8081
。
设置开机自启动
通过systemd
创建Tomcat服务,实现开机自启动:
创建服务文件/etc/systemd/system/tomcat.service
:
sudo vim /etc/systemd/system/tomcat.service ``` 路径需根据实际安装位置调整): ```ini [Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" Environment="CATALINA_HOME=/opt/tomcat10" Environment="CATALINA_BASE=/opt/tomcat10" ExecStart=/opt/tomcat10/bin/startup.sh ExecStop=/opt/tomcat10/bin/shutdown.sh User=$USER Group=$USER [Install] WantedBy=multi-user.target
保存后执行以下命令启用服务:
sudo systemctl daemon-reload sudo systemctl enable tomcat # 开机自启动 sudo systemctl start tomcat # 立即启动
相关问答FAQs
Q1:启动Tomcat时提示“Neither the JAVA_HOME nor the JRE_HOME environment variable is defined”怎么办?
A:该错误表示系统未找到Java环境变量,需检查JAVA_HOME
是否正确配置:执行echo $JAVA_HOME
查看当前值,若为空或错误,编辑~/.bashrc
文件(vim ~/.bashrc
),添加export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
(路径需与实际Java安装路径一致),保存后执行source ~/.bashrc
,重新启动Tomcat即可。
Q2:如何修改Tomcat的默认访问端口?
A:Tomcat默认端口为8080,修改方法为:编辑Tomcat安装目录下的conf/server.xml
文件,找到<Connector port="8080" .../>
这一行,将port
属性的值改为目标端口(如8081),保存文件后重启Tomcat服务,重启后访问http://IP:新端口
即可生效,需注意修改的端口不能与其他服务冲突,且防火墙需开放该端口。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/20894.html