Apache Tomcat是Java Servlet,JavaServer Pages,Java表达式语言和Java WebSocket技术的开源实现。 它是当今世界上应用最广泛的应用程序和Web服务器之一。 Tomcat使用简单,并具有强大的附加组件生态系统。
安装OpenJDK
OpenJDK,Java平台的开源实现是ubuntu 18.04中默认的Java开发和运行时。
安装非常简单:
sudo apt install default-jdk
创建Tomcat用户
我们将创建一个新的系统用户和组,其主目录/opt/tomcat将运行Tomcat服务:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
下载Tomcat
我们将使用wget和unzip来下载和解压缩Tomcat存档。 如果您的系统上没有安装unzip和wget,请使用以下命令安装软件包:
sudo apt install unzip wget
从Tomcat下载页面下载最新版本的Tomcat 8.5.x。 在撰写本文时,最新版本是8.5.31。 在继续下一步之前,您应该检查下载页面以获取新版本。
切换到/tmp目录并使用wget下载zip文件:
cd /tmp
wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.zip
下载完成后,解压zip文件并将其移至/opt/tomcat目录:
unzip apache-tomcat-*.zip
sudo mv apache-tomcat-*/ /opt/tomcat/
为了更好地控制版本和更新,我们将最新创建一个符号链接,它将指向Tomcat安装目录:
sudo ln -s /opt/tomcat/apache-tomcat-* /opt/tomcat/latest
后来如果你想升级你的Tomcat安装,你可以简单地解压缩更新的版本,并更改符号链接以指向最新版本。
我们以前设置的tomcat用户需要访问tomcat目录,所以我们将目录所有权更改为用户和组tomcat:
sudo chown -R tomcat: /opt/tomcat
我们还将在bin目录中执行脚本:
sudo chmod +x /opt/tomcat/latest/bin/*.sh
创建一个systemd单元文件
要将Tomcat作为服务运行,我们将在/etc/systemd/system/目录下用以下内容创建一个新的tomcat.service单元文件:
/etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 8.5 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
通知systemd我们创建了一个新的单元文件并通过执行以下命令来启动Tomcat服务:
sudo systemctl daemon-reload
sudo systemctl start tomcat
您可以使用以下命令检查服务状态:
sudo systemctl status tomcat
输出示例:
tomcat.service - Tomcat 8.5 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2018-05-05 11:04:40 UTC; 5s ago
Process: 13478 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 13499 (java)
Tasks: 45 (limit: 507)
CGroup: /system.slice/tomcat.service
└─13499 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/latest/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.security.
如果没有错误,您可以启用Tomcat服务在启动时自动启动:
sudo systemctl enable tomcat
测试安装
打开浏览器并输入:http://<your_domain_or_IP_address>:8080
假设安装成功,将出现类似于本文的第一张屏幕截图。
如果您无法访问该页面,那么很有可能您的防火墙阻止了端口8080.如果使用ufw打开端口8080,请运行以下命令“
sudo ufw allow 8080/tcp