【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

相关推荐
专家大圣1 分钟前
Tomcat+cpolar 让 Java Web 应用跨越局域网随时随地可访问
java·前端·网络·tomcat·内网穿透·cpolar
鱼香rose__5 分钟前
git的基本使用
linux·git
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.5 分钟前
LVS DR模式实战部署指南
运维·服务器
hkNaruto6 分钟前
【运维】低配服务器ClickHouse Docker部署故障复盘与优化配置指南
运维·服务器·clickhouse
万里1239 分钟前
在ubuntu18.04上安装ceres总结
linux·ubuntu·ceres
程序员老徐9 分钟前
Spring Security 是如何注入 Tomcat Filter 链的 —— 启动与请求源码分析
java·spring·tomcat
L16247610 分钟前
LVS+Keepalived+Nginx+Tomcat 高可用集群超详细配置手册
nginx·tomcat·lvs
头发还没掉光光1 小时前
Linux网络之IP协议
linux·运维·网络·c++·tcp/ip
一个平凡而乐于分享的小比特2 小时前
Linux内核中的container_of宏详解
linux·container_of
lcreek9 小时前
Linux信号机制详解:阻塞信号集与未决信号集
linux·操作系统·系统编程