【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

相关推荐
..Move...3 小时前
快速搭建Docker私有仓库指南
运维·docker·容器
小小的木头人4 小时前
Windows Docker desktop 部署
运维·kafka
黑翼杰克斯4 小时前
如何裁剪u-boot,保留其必要功能,使体积尽可能小
linux·1024程序员节
wanhengidc5 小时前
云手机和虚拟机的区别都有哪些?
运维·服务器·安全·智能手机·玩游戏
神奇的海马体5 小时前
Tomcat隐藏版本号
java·tomcat
码农周5 小时前
从零搭建vsftpd服务器:避坑指南+实战解决方案
运维·服务器
cellurw7 小时前
Day69 SQLite3动态库移植 + BMP图像解析显示 + 进度条控件设计与动态文本管理
linux
nono牛7 小时前
Linux基础指令大全(快速上手)
linux·服务器·windows·智能手机
<但凡.7 小时前
Linux修炼:库制作与原理(一)
linux·运维·服务器