最近在学性能测试,过程中会使用到 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
假设安装成功,一个类似下面的页面将会出现
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。