安装Java

安装Open JDK 1.8

首先使用下方的apt密码更新系统软件包索引。

sudo apt update
更新系统软件包索引

然后使用apt命令安装JDK(Java Development Kit)。

sudo apt install default-jdk
安装JDK

Java安装完成后,使用以下命令查看Java版本。

java -version
Java版本

安装最新版本Oracle JDK

安装Tomcat 9

为了安全起见,Tomcat应该由非特权用户(即不是root用户)安装和执行。所以需要创建一个新的tomcat组和用户然后运行在/opt/tomcat(即安装目录)目录下的Tomcat服务。运行以下命令创建用户和用户组。

sudo mkdir /opt/tomcat
sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

创建完成tomcat用户后,在Tomcat下载页面下载最新版本的Tomcat 9(如9.0.35)或者使用curl/wget命令下载tar压缩文件,然后解压到/opt/tomcat目录。

下载的时候建议更换镜像站点,下载速度更快。

Tomcat下载网页
curl -O https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.35/bin/apache-tomcat-9.0.35.tar.gz
sudo tar xzvf apache-tomcat-9*tar.gz -C /opt/tomcat --strip-components=1

解压完成后给用户tomcat赋予Tomcat安装目录权限。

cd /opt/tomcat
sudo chgrp -R tomcat /opt/tomcat
sudo chmod -R g+r conf
sudo chmod g+x conf
sudo chown -R tomcat webapps/ work/ temp/ logs/

新建Tomcat Systemd服务

新建服务前需要运行下列命令获取Java路径。

sudo echo $PATH
环境变量

从环境变量中可以看出Java的路径是/usr/lib/jvm/jdk-14.0.1/bin,那么Java的根目录就是/usr/lib/jvm/jdk-14.0.1。现在运行下方的命令,在/etc/systemd/system创建文件名为tomcat.servicesystemd服务。

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

复制下方文本,粘贴进终端中:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/jdk-14.0.1
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

按ESC退出vim插入模式,然后输入:wq保存并退出。输入下面的命令重载服务。

sudo systemctl daemon-reload

启用Tomcat服务,查看服务状态和开启Tomcat服务开机自启

sudo systemctl start tomcat
systemctl status tomcat
systemctl enable tomcat
Tomcat服务状态

服务开启成功后,就可以使用Nginx或者Caddy等服务器软件反向代理80/443端口到localhost:8080,就可以在公网通过IP或者域名访问了。

部署war文件到服务器