如何在Ubuntu 18.04 LTS上安装Apache Tomcat 9

时间:2020-02-23 14:38:34  来源:igfitidea点击:

Apache Tomcat是由Apache软件基础开发的Web服务器和servlet容器。
它实现了多种Java EE技术,包括Java Servlet,JavaServer Pages,Java Websocket和Java表达语言。

在教程中,我们将向我们展示如何使用Oracle Java 8安装和配置Apache Tomcat 9.

第1步)安装Oracle Java

在终端中的一段时间输入以下命令以添加Java存储库,更新系统并安装Java。

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-set-default

为协议选择"是",并继续安装。
安装完成后,安装后可以查看Java版本和Java主页如下:

sudo java -version
sudo echo $JAVA_HOME

步骤2)为Tomcat创建用户

通常,我们不建议我们在root用户下运行Tomcat以供安全目的。
相反,我们建议我们创建一个新的用户和组。
此外,我们将安装Tomcatto"/opt/tomcat"文件夹以用作Tomcat用户主目录。

从创建组和用户开始。

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

第3步)下载并安装Tomcat

Tomcat 9可以从官方下载页面下载二进制版本。

我们可以从"核心"部分下载"zip"或者"tar.gz"文件下载"zip"或者"tar.gz"文件。

我们将将Tomcat安装到"/opt"目录。
所以我们将下载到该位置。

将目录更改为/opt

cd /opt

在下面的wget命令中复制下载URL并粘贴它以下载Tomcat包:

sudo wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz

提取焦油包。

sudo tar -xvzf apache-tomcat-9.0.14.tar.gz

将提取的文件重命名为Tomcat。

sudo mv apache-tomcat-9.0.14 tomcat

修改Tomcat文件夹的所有权和权限。

sudo chown -R tomcat: tomcat

执行"bin"目录的执行权限。

sudo chmod o+x /opt/tomcat/bin/

步骤4)为Tomcat服务管理创建"SystemD"文件

要启动和停止Tomcat服务,我们将在"/etc/systemd/system"中创建一个名为"tomcat.service"的文件。

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

将以下内容添加到文件中。

[Unit]
Description=Tomcat 9 Server
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-8-oracle"
Environment="JAVA_OPTS=-Xms512m -Xmx512m"
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
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target

然后保存和退出文件。

重新启动"systemctldeamon"。

sudo systemctl daemon-reload

启动Tomcat服务。

sudo systemctl start tomcat

监控Tomcat Logfile。

tail -f /opt/tomcat/logs/catalina.out

如果没有错误,我们将获得类似于以下输出:

检查Tomcat服务状态。

sudo systemctl status tomcat

Tomcat状态

启用系统启动的Tomcat服务:

sudo systemctl enable tomcat

默认Tomcatport是"8080",因此需要允许在Ubuntu防火墙上允许该端口。

sudo ufw allow 8080/tcp

检查防火墙状态:

sudo ufw status

步骤5)配置Tomcat Web管理界面

编辑Tomcat-Users文件,如下所示,将以下内容添加到"</tomcat-users>"之前。
显然,我们必须在以下命令中替换根据需要的角色名称,用户名和密码:

sudo vim /opt/tomcat/conf/tomcat-users.xml
<role rolename="admin-gui"
<role rolename="manager-gui"
<user username="tomcatadmin" password="abc123" roles="admin-gui,manager-gui"

重新启动Tomcat以获取新配置以生效。

sudo systemctl restart tomcat

第6步)测试Tomcat

如果我们成功地制作了这一点,我们应该能够浏览Tomcat服务器。
在浏览器中启动以下URL。

http://serverIp:8080

单击Manager应用程序或者主机管理器。
我们应该看到用户名和密码的提示。
输入在步骤5中的"Tomcat-Users.xml"文件上创建的Tomcat用户名和密码。

如果一切顺利,你应该得到"访问被拒绝"错误。
这是完全正常的。

此错误背后的推理是Tomcat Web管理界面配置为仅从LocalHost限制对Apps Manager和主机管理器的访问。
因此,应启用远程IP访问。
这不建议使用生产环境。

但是,这里是如何删除这些限制并启用我们的公共IP。

打开以下文件以获取管理应用程序设置:

sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml

对于主机管理器配置:

sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml

在下面的命令中使用"yourip"将公共IP中的以下部分修改以下部分。

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|yourIP" 
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter$LruCache(?:\)?|java\.util\.(?:Linked)?HashMap"
</Context>

重新启动Tomcat,然后再次浏览Tomcat,以后通过单击Manager App或者Host Manager。
你现在应该看看没有问题。

sudo systemctl restart tomcat