【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

相关推荐
Dachui_11222 分钟前
内网穿透 Webhook 告警实战:客户端离线、应用探测、资源删除全覆盖
运维·远程工作·内网穿透·devops·webhook·服务器监控·应用探测
数据智研9 分钟前
【数据分享】300个城市-5G试点城市DID数据(2014-2025)
大数据·运维·人工智能·信息可视化·数据分析
honsor11 分钟前
工业级网口温湿度变送器 ModbusTCP 机房动环环境监测终端
运维·网络·人工智能·物联网·安全·云计算·智能温湿度监测系统
赵民勇14 分钟前
systemd-mount命令详解
linux
fengkai454527 分钟前
八、Docker详解1-3
运维·docker·容器
H_oRIZoN_35 分钟前
Linux入门DAY42【51 单片机】DS18B20 数字温度传感器完整解析(单总线原理 + 时序 + 读取流程)
linux·单片机·linux应用编程
j7~38 分钟前
【Linux网络加餐】(篇六)网络版计算器(上):模板方法模式、序列化与 JSON
linux·c++·json·序列化·反序列化·网络版计算机
流浪0011 小时前
Linux系统篇34——信号(六):信号处理期间又来了怎么办?——sigaction、sa_mask、可重入函数与 volatile
linux·运维·面试·操作系统·信号处理·信号
学烹饪的小胡桃1 小时前
资产设备管理系统 WGFIX 怎么设置https访问
linux·运维·服务器·网络·安全
邪修king2 小时前
Re:Linux系统篇(二十六):文件系统(二):Ext 文件系统底层详解:从 inode、块组到软硬链接,结合 Windows 讲透文件管理本质
android·java·linux