简介
在本教程中,我们将解释如何在 Ubuntu 22.04 上为 Java 应用程序安装 Apache Tomcat 10。
通过这份全面的分步教程,学习如何在 Linux 服务器上安装和配置 Apache Tomcat。从安装 Java 和下载 Tomcat 到设置专用用户和配置访问权限,本指南涵盖了你高效部署和管理 Java 应用程序所需的一切。
通过详细的故障排除提示,克服诸如 “403 Access Denied” 错误之类的常见问题,并确保你的 Tomcat 服务器已准备好投入生产使用。本教程非常适合希望增强 Web 服务器设置的开发人员和系统管理员。
安装和配置步骤
第一步:更新你的系统
首先,确保你的系统是最新的。
sudo apt update
sudo apt upgrade -y
第二步:安装 Java
Apache Tomcat 需要 Java 才能运行。你可以安装 OpenJDK,它是 Java 平台的开源实现。
sudo apt install openjdk-17-jdk -y
验证安装:
java -version
第三步:创建 Tomcat 用户
出于安全考虑,创建一个单独的用户来运行 Tomcat。
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
第四步:下载 Apache Tomcat
从 官方网站 下载最新版本的 Apache Tomcat。
cd /tmp
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.26/bin/apache-tomcat-10.1.26.tar.gz
第五步:安装和配置 Tomcat
解压 Tomcat 包并将其移动到 /opt/tomcat
目录。
sudo mkdir /opt/tomcat
sudo tar -xzf apache-tomcat-10.1.26.tar.gz -C /opt/tomcat --strip-components=1
为 Tomcat 目录设置适当的权限。
sudo chown -R tomcat: /opt/tomcat
sudo chmod -R u+x /opt/tomcat/bin
创建一个 systemd 服务文件来管理 Tomcat 服务。
sudo nano /etc/systemd/system/tomcat.service
将以下内容添加到文件中:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64"
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
[Install]
WantedBy=multi-user.target
重新加载 systemd 守护进程并启动 Tomcat 服务。
sudo systemctl daemon-reload
sudo systemctl start tomcat
启用 Tomcat 在启动时启动:
sudo systemctl enable tomcat
第六步:调整防火墙
如果你的防火墙已启用,请允许端口 8080 上的流量。
sudo ufw allow 8080
sudo ufw reload
第七步:验证安装
打开 Web 浏览器并转到 http://你的服务器IP:8080
。你应该看到 Apache Tomcat 欢迎页面。
第八步:配置 Tomcat Web 管理界面(可选)
要访问 Tomcat Web 管理界面,你需要配置用户。编辑 tomcat-users.xml 文件:
sudo nano /opt/tomcat/conf/tomcat-users.xml
在 </tomcat-users>
行之前添加以下行:
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="password" roles="manager-gui,admin-gui"/>
注意: 将 admin 和 password 替换为你喜欢的用户名和密码。
Tomcat 的 Manager 应用程序的 web.xml
文件控制访问。默认情况下,Manager 应用程序仅限于某些 IP 地址。要允许访问,你可能需要配置 Manager 应用程序的 context.xml
文件。
编辑 Manager 应用程序的 context.xml
文件:
sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
注释掉或修改 Valve 部分以允许来自所有 IP 地址或特定 IP 地址的访问:
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\\.\\d+\\.\\d+\\.\\d+|::1|0:0:0:0:0:0:0:1"/>
-->
或者,如果你只想允许来自特定 IP 地址的访问,你可以在 allow 属性中列出它们。 例如:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\\.\\d+\\.\\d+\\.\\d+|::1|0:0:0:0:0:0:0:1|你的_IP_地址"/>
将 你的_IP_地址
替换为你想要允许访问的实际 IP 地址。
重启 Tomcat 服务以应用更改。
sudo systemctl restart tomcat
现在,你可以在以下位置访问 Tomcat Manager 和 Host Manager 界面:
Tomcat Manager: http://你的服务器IP:8080/manager/html
Host Manager: http://你的服务器IP:8080/host-manager/html
使用你在 tomcat-users.xml 文件中配置的用户名和密码登录。
结论
你已成功在 Ubuntu 22.04 服务器上安装和配置了 Apache Tomcat 10。你现在可以在 Tomcat 服务器上部署你的 Java 应用程序。