最近在学性能测试,过程中会使用到 Tomcat。这里记录下在 ubuntu 20.04 上安装 Tomcat 9 的过程,以便以后安装时能快速上手。

安装 Java

Tomcat 9 要求 Java 的版本在 8 以上,这里就安装 openJDK 11。

首先使用 sudo 命令安装 JDK 安装包,输入以下命令。

   sudo apt update
   sudo apt install openjdk-11-jdk

安装完成后,检查 Java 的版本来验证是否安装成功。

  java -version

输出像以下的内容即为成功。

openjdk version "11.0.11" 2021-04-20 OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)

为tomcat 创建一个系统用户

以root用户允许tomcat 有风险,我们将会建设一个系统用户tomcat和用户组tomcat。
该用户的家目录是 /opt/tomcat。具体命令如下:

  # 新增一个系统用户,用户名为tomcat, 属组与用户名相同,家目录为/opt/tomcat,登录shell为/bin/false 

  sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

下载Tomcat 并做好应用准备

执行下面的命令获取指定版本的Tomcat,并把该安装包放到当前目录下。

  wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.53/bin/apache-tomcat-9.0.53.zip

当下载完成后,解压安装包。

   unzip -o -d /opt/tomcat  apache-tomcat-9.0.53.zip

创建的系统用户必须对tomcat 安装目录有访问权限。修改/opt/tomcat的用户和用户组。

 sudo chown -R tomcat: /opt/tomcat 

再让Tomcat bin 目录下的shell 脚本必须可执行:

  sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh'

Tomcat 服务化

为了使用标准化的方式来管理Tomcat, 我们选择把它作为服务来运行。

使用vim 在 /etc/systemd/system 目录下创建一个 tomcat.service 单元文件。

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

文件的内容如下


[Unit]
Description=Tomcat 9 servlet container
After=network.target # 运行在网络服务开启后

[Service]
# 当初始化完成,父进程会退出。子进程会继续作为主进程执行。
Type=forking

User=tomcat
Group=tomcat

# 定义服务需要使用的环境变量
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

# 启动命令
ExecStart=/opt/tomcat/bin/startup.sh
# 终止命令
ExecStop=/opt/tomcat/bin/shutdown.sh

[Install] # 定义如何安装这个配置文件,即怎样做到开机启动。

# 服务所在的 Target 是multi-user.target。在这个组里的所有服务,都将开机启动。

WantedBy=multi-user.target

保存并且关闭文件,通知 systemd 一个新的单元文件存在

  sudo systemctl daemon-reload

启用并且启动 Tomcat 服务:

  sudo systemctl enable --now tomcat

检查服务状态:

  sudo systemctl status tomcat  

现在你可以像其他systemd服务一样启动,停止和重启tomcat。

  sudo systemctl start tomcat
  sudo systemctl stop tomcat
  sudo systemctl restart tomcat

测试安装

打开你的浏览器,输入:http://<your_domain_or_IP_address>:8080

假设安装成功,一个类似下面的页面将会出现

image.png

参考文章

  1. 如何在 Ubuntu 20.04 上安装 Tomcat 9
  2. Systemd 入门教程:实战篇
  3. systemd.service 中文手册

波洋
1 声望0 粉丝

引用和评论

0 条评论