如何在 Ubuntu 20.04 上安装 Tomcat 9

时间:2019-04-29 03:17:22  来源:igfitidea点击:

Apache Tomcat 9 是可用于安装的最新版本。Tomcat 是一个开源 Web 服务器,用于 Apache 基金会开发的基于 Java 的应用程序。我们使用 Tomcat 来部署 Java Servlet 和 JSP 应用程序。

安装 Java

必须在系统上安装 Java 才能运行 tomcat 服务器。Tomcat 9 需要在系统上安装 Java 8 或更高版本。使用以下命令在系统上安装 OpenJDK,或者如果已安装,则跳过。

sudo apt install openjdk-11-jdk

检查当前活动 Java 版本:

java -version

openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

创建Tomcat帐户

我们建议创建单独的用户帐户,以在 Ubuntu 系统上运行 tomcat Web 服务器。
执行以下命令:

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

上述命令将在系统上创建名称为"tomcat"的用户和组。

下载Tomcat归档包

Apache Tomcat 开发团队不时发布最新版本的 Tomcat。因此,这将是很好的检查下载最新的Tomcat版本从官方下载服务器。使用下面的命令下载 Tomcat 9.0.35。

wget https://www-us.apache.org/dist/tomcat/tomcat-9/v9.0.35/bin/apache-tomcat-9.0.35.tar.gz

下载完成后,提取下载的归档包,并将所有内容复制到 tomcat 主目录。

tar xzf apache-tomcat-9.0.35.tar.gz
sudo mv apache-tomcat-9.0.35/* /opt/tomcat/

此外,设置所有文件的权限。

sudo chown -R tomcat:tomcat /opt/tomcat/

还可以下载 Tomcat 8 而不是 Tomcat 9,并相应地更改上述命令。其余步骤操作一样。

启用主机/管理器远程访问

默认情况下,Tomcat 管理器和主机管理器只能从本地主机系统访问页面。要允许从远程系统访问这些页面,需要创建以下配置文件。
首先创建管理器 xml 文件:

sudo nano /opt/tomcat/conf/Catalina/localhost/manager.xml

添加以下内容

<Context privileged="true" antiResourceLocking="false"
         docBase="{catalina.home}/webapps/manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

然后创建主机管理器 xml 文件:

vim /opt/tomcat/conf/Catalina/localhost/host-manager.xml

添加以下内容

<Context privileged="true" antiResourceLocking="false"
         docBase="${catalina.home}/webapps/host-manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

保存两个文件并关闭。

创建Tomcat访问凭据

现在,使用用户帐户配置 tomcat,以确保对管理员/管理器页面的访问。为此,编辑 [conf/tomcat-user.xml] 文件,并在标记中粘贴以下代码。我们建议使用高安全密码更改以下配置中的密码。

sudo nano /opt/tomcat/conf/tomcat-users.xml

添加以下值。请确保为管理员和管理器访问权限更改密码。

<green><!-- user manager can access only manager section --></green>
<role rolename="<orange>manager-gui</orange>" />
<user username="<orange>manager</orange>" password="<orange>_SECRET_PASSWORD_</orange>" roles="<orange>manager-gui</orange>" />

<green><!-- user admin can access manager and admin section both --></green>
<role rolename="<orange>admin-gui</orange>" />
<user username="<orange>admin</orange>" password="<orange>_SECRET_PASSWORD_</orange>" roles="<orange>manager-gui,admin-gui</orange>" />

保存文件并关闭。

创建一个Tomcat启动脚本

Tomcat 提供 bash 脚本以启动、停止服务。但是,要简化它,请创建一个启动脚本来管理 Tomcat 作为系统化服务。

让我们创建一个包含以下内容的 tomcat.service文件:

sudo nano /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat
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"
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]
WantedBy=multi-user.target

重新加载系统守护进程服务,使更改生效

sudo systemctl daemon-reload

然后,在系统上启用并启动 Tomcat 服务

sudo systemctl enable tomcat
sudo systemctl start tomcat

访问Tomcat

Tomcat 服务器在端口 8080 默认值上工作。通过在端口 8080 上连接服务器,在 Web 浏览器上访问 Tomcat。

http://服务器ip或者域名:8080