【Linux】Tomcat基本配置

本文详细介绍如何在轻量服务器上,使用华为云镜像站快速下载和配置Tomcat 8,并配置systemd服务管理。

环境准备

系统要求

  • 操作系统:CentOS 7/8 或 Ubuntu 18.04+
  • 内存:至少1GB
  • 磁盘空间:至少2GB可用空间

软件要求

  • JDK 1.8+(Tomcat 8要求)

完整安装步骤

1. 安装 JDK 1.8

bash 复制代码
# CentOS/RHEL
sudo yum install -y java-1.8.0-openjdk-devel

# Ubuntu/Debian  
sudo apt update
sudo apt install -y openjdk-8-jdk

验证安装:

bash 复制代码
java -version
# 应该显示:java version "1.8.0_xxx"

2. 从华为云镜像站下载 Tomcat 8

bash 复制代码
# 进入安装目录
cd /opt

# 从华为云镜像站下载 Tomcat 8
sudo wget https://mirrors.huaweicloud.com/apache/tomcat/tomcat-8/v8.5.96/bin/apache-tomcat-8.5.96.tar.gz

# 如果版本不可用,查看最新版本
sudo wget -q -O - https://mirrors.huaweicloud.com/apache/tomcat/tomcat-8/ | grep -o 'v8\.5\.[0-9]*/' | sort -V | tail -1

3. 解压和配置

bash 复制代码
# 解压 Tomcat
sudo tar -xzf apache-tomcat-8.5.96.tar.gz

# 重命名并移动到目标目录
sudo mv apache-tomcat-8.5.96 tomcat8

# 删除压缩包
sudo rm -f apache-tomcat-*.tar.gz

4. 创建专用用户和设置权限

bash 复制代码
# 创建系统用户
sudo useradd -r -m -U -d /opt/tomcat8 -s /bin/false tomcat

# 设置目录所有权
sudo chown -R tomcat:tomcat /opt/tomcat8

# 给执行脚本添加权限(关键步骤!)
sudo chmod +x /opt/tomcat8/bin/*.sh

# 创建必要的目录
sudo mkdir -p /opt/tomcat8/temp
sudo mkdir -p /opt/tomcat8/logs
sudo chown tomcat:tomcat /opt/tomcat8/temp
sudo chown tomcat:tomcat /opt/tomcat8/logs

5. 配置 Systemd 服务

创建服务文件:

bash 复制代码
sudo nano /etc/systemd/system/tomcat.service

使用以下配置:

ini 复制代码
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=simple
User=tomcat
Group=tomcat
Environment=CATALINA_HOME=/opt/tomcat8
Environment=CATALINA_BASE=/opt/tomcat8
ExecStart=/opt/tomcat8/bin/catalina.sh run
ExecStop=/opt/tomcat8/bin/catalina.sh stop
Restart=always

[Install]
WantedBy=multi-user.target

重要注意事项

1. 权限问题排查

如果启动失败,检查以下权限:

bash 复制代码
# 检查脚本执行权限
ls -la /opt/tomcat8/bin/*.sh
# 应该显示:-rwxr-xr-x

# 检查目录权限
ls -la /opt/tomcat8/
# tomcat用户应该拥有所有文件

2. 环境变量配置(可选但推荐)

创建环境变量文件:

bash 复制代码
sudo nano /opt/tomcat8/bin/setenv.sh

添加:

bash 复制代码
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export CATALINA_PID=/opt/tomcat8/temp/tomcat.pid

设置权限:

bash 复制代码
sudo chmod +x /opt/tomcat8/bin/setenv.sh
sudo chown tomcat:tomcat /opt/tomcat8/bin/setenv.sh

3. 激活并测试服务

bash 复制代码
# 重新加载systemd配置
sudo systemctl daemon-reload

# 启动Tomcat服务
sudo systemctl start tomcat

# 设置开机自启
sudo systemctl enable tomcat

# 检查服务状态
sudo systemctl status tomcat

4. 防火墙配置

bash 复制代码
# CentOS 7
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

# CentOS 8
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

# Ubuntu
sudo ufw allow 8080/tcp
sudo ufw reload

验证安装

1. 检查服务状态

bash 复制代码
sudo systemctl status tomcat
# 应该显示:Active: active (running)

2. 检查端口监听

bash 复制代码
netstat -tlnp | grep 8080
# 或者使用:
ss -tlnp | grep 8080

3. 访问测试

在浏览器中访问:

复制代码
http://你的服务器IP:8080

应该看到Tomcat 8的欢迎页面。

故障排除

常见问题1:启动失败 status=203/EXEC

bash 复制代码
# 解决方案:修复脚本权限
sudo chmod +x /opt/tomcat8/bin/*.sh
sudo systemctl daemon-reload
sudo systemctl restart tomcat

常见问题2:权限被拒绝

bash 复制代码
# 解决方案:重新设置所有权
sudo chown -R tomcat:tomcat /opt/tomcat8

常见问题3:端口被占用

bash 复制代码
# 检查端口占用
netstat -tlnp | grep 8080
# 杀死占用进程或修改Tomcat端口
sudo nano /opt/tomcat8/conf/server.xml

查看日志

bash 复制代码
# 查看Tomcat日志
sudo tail -f /opt/tomcat8/logs/catalina.out

# 查看systemd日志
sudo journalctl -u tomcat.service -f

管理命令

bash 复制代码
# 启动服务
sudo systemctl start tomcat

# 停止服务  
sudo systemctl stop tomcat

# 重启服务
sudo systemctl restart tomcat

# 查看状态
sudo systemctl status tomcat

# 查看日志
sudo journalctl -u tomcat.service -n 50

项目部署

将WAR文件部署到Tomcat:

bash 复制代码
# 复制WAR文件到webapps目录
sudo cp your-app.war /opt/tomcat8/webapps/

# 设置权限
sudo chown tomcat:tomcat /opt/tomcat8/webapps/your-app.war

# 重启Tomcat
sudo systemctl restart tomcat

tomcat编码问题

https://blog.csdn.net/m0_69750058/article/details/133006199

相关推荐
Yang961119 小时前
自动化射频测试台快速搭建,鼎讯信通 DXSL 矢量信号源模块二次开发集成指南
运维·自动化
翼龙云_cloud20 小时前
腾讯云国际站代理商: COS 对象存储 + CDN加速 从创建到加速完成
运维·服务器·云计算·腾讯云
aFakeProgramer20 小时前
Linux版本兼容问题及RTA-VRTE环境配置笔记
linux·笔记
Zhu75820 小时前
在Ubuntu24快速配置专用SFTP
linux·sftp
码农客栈21 小时前
Linux 内核顶层 Makefile 详解
linux
Embedded-Xin21 小时前
Rust学习——Cargo工具
linux·学习·架构·rust·嵌入式
weixin_4357761121 小时前
2026年长沙托育vi设计从风格定位到元素运用的设计方法
linux·运维·服务器·python
xcLeigh21 小时前
KingbaseES 的卢智能运维体架构深度拆解
运维·数据库·人工智能·ai·架构·ffmpeg·智能体
泰和英杰21 小时前
工商业储能柜采购选型与并网运维要点
运维
龙仔7251 天前
RustDesk 完整笔记
运维·笔记·rust·远程工具·rustdesk