凌峰创科服务平台

Linux启动Tomcat服务器有哪些关键步骤?

直接使用 startup.sh (最直接,但不推荐用于生产环境)

这是最简单直接的方法,直接进入 Tomcat 的 bin 目录,执行启动脚本。

Linux启动Tomcat服务器有哪些关键步骤?-图1
(图片来源网络,侵删)

确保你已经安装了 Java

Tomcat 是一个 Java 应用,必须先安装 Java 运行环境,你可以使用 java -version 命令检查。

java -version

如果系统提示 command not found,说明 Java 未安装,你需要先安装它,在 CentOS/RHEL 系统上:

# 安装 OpenJDK (推荐)
sudo yum install java-11-openjdk-devel
# 或者安装 OpenJDK 8
# sudo yum install java-1.8.0-openjdk-devel

在 Ubuntu/Debian 系统上:

Linux启动Tomcat服务器有哪些关键步骤?-图2
(图片来源网络,侵删)
# 安装 OpenJDK (推荐)
sudo apt update
sudo apt install openjdk-11-jdk
# 或者安装 OpenJDK 8
# sudo apt install openjdk-8-jdk

找到 Tomcat 的安装目录

Tomcat 会被解压到 /opt/usr/local 或你的家目录下,假设你的 Tomcat 安装在 /opt/apache-tomcat-9.0.65 (请替换成你自己的路径)。

进入 Tomcat 的 bin 目录

cd /opt/apache-tomcat-9.0.65/bin

startup.sh 赋予执行权限

Linux启动Tomcat服务器有哪些关键步骤?-图3
(图片来源网络,侵删)

如果是新下载的 Tomcat,可能需要手动赋予执行权限。

chmod +x startup.sh

启动 Tomcat

执行启动脚本:

./startup.sh

检查启动状态

执行后,你会看到类似 "Server startup in XXX ms" 的信息,这表示 Tomcat 已经成功启动。

你可以通过以下几种方式进一步验证:

  • 查看日志: Tomcat 的启动日志会输出到 logs/catalina.out 文件,你可以用 tail 命令实时查看:

    tail -f /opt/apache-tomcat-9.0.65/logs/catalina.out
  • 检查端口: Tomcat 默认监听 8080 端口,你可以用 netstatss 命令检查该端口是否被监听:

    # 使用 netstat
    netstat -tuln | grep 8080
    # 使用 ss (更现代的命令)
    ss -tuln | grep 8080
  • 浏览器访问: 在浏览器中输入 http://<你的服务器IP>:8080,如果能看到 Tomcat 的欢迎页面,说明启动成功。


使用 systemd 服务 (推荐,用于生产环境)

在生产环境中,我们更希望将 Tomcat 作为一项系统服务来运行,这样可以实现开机自启、方便管理(start, stop, restart, status)以及更好地处理进程。

创建 systemd 服务文件

使用 vinano 编辑器创建一个新的服务文件,tomcat.service

sudo vi /etc/systemd/system/tomcat.service

粘贴到文件中。请务必根据你的实际情况修改 JAVA_HOME, CATALINA_HOMECATALINA_PID 的路径。

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
# 修改为你自己的 Java 安装路径
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
# 修改为你自己的 Tomcat 安装路径
Environment="CATALINA_HOME=/opt/apache-tomcat-9.0.65"
# 修改为你自己的 Tomcat 安装路径
Environment="CATALINA_BASE=/opt/apache-tomcat-9.0.65"
# Tomcat PID 文件路径
Environment="CATALINA_PID=$CATALINA_HOME/temp/tomcat.pid"
# Tomcat 启动和停止命令
ExecStart=$CATALINA_HOME/bin/startup.sh
ExecStop=$CATALINA_HOME/bin/shutdown.sh
# 用户和组,建议使用非 root 用户运行 Tomcat,这里用 'tomcat' 作为示例
# 你需要先创建这个用户: sudo useradd -r -s /bin/false tomcat
User=tomcat
Group=tomcat
# 确保服务能正确关闭
KillMode=none
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

重要说明:

  • JAVA_HOME: 运行 readlink -f $(which java) 可以找到 Java 的真实路径,然后取其父目录,如果 java/usr/bin/java,链接到 /etc/alternatives/java,最终指向 /usr/lib/jvm/java-11-openjdk-amd64/bin/javaJAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64
  • CATALINA_HOME: 你的 Tomcat 安装根目录。
  • UserGroup: 强烈建议不要用 root 用户运行 Tomcat,你可以先创建一个专用用户:
    sudo useradd -r -s /bin/false tomcat
    sudo chown -R tomcat:tomcat /opt/apache-tomcat-9.0.65

重新加载 systemd 配置

创建或修改服务文件后,需要让 systemd 重新加载配置。

sudo systemctl daemon-reload

启动 Tomcat 服务

现在你可以使用 systemctl 命令来管理 Tomcat 服务了。

# 启动 Tomcat
sudo systemctl start tomcat
# 查看服务状态
sudo systemctl status tomcat

如果看到绿色的 active (running),说明启动成功。

设置开机自启

如果你希望 Tomcat 在服务器重启后自动启动,请执行:

sudo systemctl enable tomcat

常用管理命令

# 停止服务
sudo systemctl stop tomcat
# 重启服务
sudo systemctl restart tomcat
# 查看服务状态
sudo systemctl status tomcat
# 禁用开机自启
sudo systemctl disable tomcat

常见问题与解决方案

问题1:启动失败,提示权限被拒绝 (Permission denied)

  • 原因: 你可能使用了 root 用户,或者 tomcat 用户没有权限访问 Tomcat 目录下的文件。
  • 解决方案:
    1. 确保你使用的用户有执行 startup.sh 的权限。
    2. 如果你创建了 tomcat 用户,请确保该用户拥有 Tomcat 目录的所有权:
      sudo chown -R tomcat:tomcat /opt/apache-tomcat-9.0.65

问题2:启动失败,提示端口 8080 被占用

  • 原因: 可能已经有其他程序在使用 8080 端口。
  • 解决方案:
    1. 查看哪个进程占用了 8080 端口:
      sudo lsof -i :8080
      # 或者
      sudo netstat -tulpn | grep 8080
    2. 如果是 Tomcat 自己的旧进程,直接杀掉它:
      sudo kill -9 <PID>
    3. 如果是其他程序,你需要停止它或修改 Tomcat 的端口配置(在 conf/server.xml 文件中修改 <Connector port="8080" ...>)。

问题3:启动失败,日志提示 JAVA_HOME is not set correctly

  • 原因: Tomcat 找不到 Java 的安装路径。
  • 解决方案:
    1. 确保 JAVA_HOME 环境变量设置正确,你可以通过 echo $JAVA_HOME 检查。
    2. 如果未设置,可以临时设置:
      export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

      然后再执行 ./startup.sh

    3. 如果要永久设置,可以修改 ~/.bashrc/etc/profile 文件,source 文件使其生效。
方法 优点 缺点 适用场景
startup.sh 简单、快速,无需配置 无法作为服务管理,不便于开机自启和进程管理 开发测试、
分享:
扫描分享到社交APP
上一篇
下一篇