如何在Ubuntu 22.04上安装WildFly JAVA应用服务器
WildFly(以前称为 JBoss)是一个免费的开源应用程序服务器,可帮助您构建和部署 Java Web 应用程序。它是用 Java 编写的,符合 Java EE(企业版)规范。 WildFly 是由 JBoss 创建的,但现在由 RedHat 开发。它是一个功能强大、生产就绪、模块化、轻量级的应用程序服务器,提供运行和部署 Java Web 应用程序所需的所有工具和功能。
WildFly 是一个跨平台应用服务器。它为您的 Java 应用程序提供了 EJB、JPA、Servlet、JAX-RS、Batch 和安全性等工具。
本指南将帮助您在 Ubuntu 22.04 服务器上安装 WildFly。您将在 Ubuntu 系统上从二进制包手动安装 WildFly。
先决条件
要完成本教程,您将需要一个 Ubuntu 22.04 服务器。该服务器应该有一个具有 root/管理员权限的非 root 用户。此外,建议您在 Ubuntu 系统上启用“UFW”防火墙。
安装 Java OpenJDK
在开始安装 WildFly 之前,您将首先在 Ubuntu 服务器上安装 Java OpenJDK。在撰写本文时,最新版本的 WildFly 至少需要 Java v8。默认的Ubuntu APT存储库提供Java v11,适合最新版本的WildFly安装。
运行下面的“apt”命令来更新和刷新您的 Ubuntu 软件包索引。
sudo apt update
要安装 Java OpenJDK,请运行下面的“apt install”命令。系统会提示您确认安装,输入Y,然后按ENTER继续,Java OpenJDK安装就会开始。
sudo apt install default-jdk
现在 Java OpenJDK 已安装,请使用以下命令检查并验证 Java 版本。您应该会看到 Java OpenJDK 11 已安装在您的 Ubuntu 22.04 服务器上。
java -version
从二进制文件安装 WildFly
安装 Java 后,您将在 Ubuntu 服务器上手动安装 WildFly。手动 WildFly 安装需要您设置新的系统用户、下载 WildFLy 二进制包并设置 WildFly 的配置目录和 systemd 服务。
要创建新的系统用户,请运行下面的“useradd”命令。
在以下示例中,新系统用户将被命名为“wildfly”,基本主目录为“/opt/wildfly”。该目录也将用作 WildFly 的主安装目录。
sudo useradd -r -d /opt/wildfly -s /usr/sbin/nologin wildfly
在下载WildFly二进制包之前,运行以下命令创建一个新的临时环境变量“WILDFLY_RELEASE”。这将为环境变量“WILDFLY_RELEASE”分配最新版本的 WildFly 版本。在撰写本文时,WildFly 的最新版本是 v26.x。
WILDFLY_RELEASE=$(curl -s https://api.github.com/repos/wildfly/wildfly/releases/latest|grep tag_name|cut -d '"' -f 4)
echo $WILDFLY_RELEASE
要下载 WildFly 二进制包,请运行下面的“wget”命令。您应该在当前目录中看到新文件。
wget https://github.com/wildfly/wildfly/releases/download/${WILDFLY_RELEASE}/wildfly-${WILDFLY_RELEASE}.tar.gz
接下来,使用下面的“tar”命令提取 WildFLy 包。然后,将新提取的 WildFly 目录移动到“/opt/wildfly”。
tar -xvf wildfly-${WILDFLY_RELEASE}.tar.gz
sudo mv wildfly-${WILDFLY_RELEASE} /opt/wildfly
使用以下命令将 WldFly 安装目录的正确且适当的所有权设置给用户“wildfly”。
sudo chown -R wildfly:wildfly /opt/wildfly
之后,使用以下命令创建一个新的默认配置目录“/etc/wildfly”。然后,将WildFly配置文件的示例复制到其中。
sudo mkdir -p /etc/wildfly/
sudo cp sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/
使用以下命令编辑默认的 WildFly 配置文件“/etc/wildfly/wildfly.conf”。
sudo nano /etc/wildfly/wildfly.conf
您可以将“WILDFLY_BIND”地址更改为您的本地服务器 IP 地址。此外,在本演示中,您将使用配置文件“standalone.xml”以“standalone”模式运行 WildFly。
The configuration you want to run
WILDFLY_CONFIG=standalone.xml
The mode you want to run
WILDFLY_MODE=standalone
The address to bind to
WILDFLY_BIND=192.168.5.10
完成后保存并关闭文件。
接下来,将 WildFly 启动脚本示例“/opt/wildfly/docs/contrib/scripts/systemd/launch.sh”复制到目录“/opt/wildfly/bin/””。然后,将 WildFly systemd 服务文件“/opt/wildfly/docs/contrib/scripts/systemd/wildfly.service”复制到目录“/usr/lib/systemd/system/” 。
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /usr/lib/systemd/system/
此外,您还需要创建一个新目录“/var/run/wildfly”,用于存储 WildFly 服务器的 PID(进程 ID)文件。另外,请确保将该目录的正确所有权更改为用户“wildfly”。
sudo mkdir /var/run/wildfly/
sudo chown -R wildfly:wildfly /var/run/wildfly/
现在运行下面的“systemctl”命令来重新加载 systemd 管理器并应用新的 WildFly 服务文件。
sudo systemctl daemon-reload
之后,使用以下“systemctl”命令启动并启用“wildfly”服务。并且“wildfly”服务将启动并运行,并且它将在系统启动时自动运行。
sudo systemctl start wildfly
sudo systemctl enable wildfly
要检查并验证“wildfly”服务状态,请运行以下命令。您应该看到“wildfly”服务已“启用”,并且当前状态为“正在运行”。
sudo systemctl status wildfly
默认情况下,WildFly 在 TCP 端口“8080”上运行。如果您的服务器上启用了“UFW”防火墙,则必须打开该端口。
运行下面的“ufw”命令为 WildFly 打开 TCP 端口“8080”。然后,检查并验证 UFW 防火墙状态。您应该看到端口“8080”已被添加。
sudo ufw allow 8080/tcp
sudo ufw status
打开网络浏览器并使用端口“8080”访问服务器 IP 地址(例如 http://192.168.5.10:8080/)。您将看到 WildFly 的默认 index.html 页面。
设置管理用户 WildFly
默认安装时,WildFly 管理处于禁用状态。在此演示中,您将启用 WildFly 管理仪表板,该仪表板允许您设置应用程序部署、运行时配置、访问控制和其他 WildFly 设置。
在开始配置和启用 WildFly 管理之前,您将为 WildFly 设置新的管理员用户。
以下面的“wildfly”用户身份运行 WildFly 添加用户脚本“/opt/wildfly/bin/add-user.sh”。
sudo -u wildfly /opt/wildfly/bin/add-user.sh
现在,系统将提示您进行以下管理员用户配置:
- 输入“a”设置WildFly“管理用户”。
- 输入 WildFly 管理员的用户名。在此演示中,我们将使用管理员用户“alice”。
- 输入新管理员用户的密码并重复。请务必使用脚本建议的强密码。
- 将组配置保留为默认值,然后按ENTER。
- 输入“yes”以确认新的 WildFly 管理配置。
- 最后,再次输入“yes”以使新用户能够用于识别一个WildFly进程,或者您可以对此设置输入“no”。
启用 WildFly 管理控制台
如果您创建了 WildFly 管理员用户,现在您将通过配置文件“/etc/wildfly/wildfly.conf”设置 WildFly 管理控制台。
使用以下命令编辑配置文件“/etc/wildfly/wildfly.conf”。
sudo nano /etc/wildfly/wildfly.conf
将以下配置添加到文件中。这将为 WildFly 服务创建一个名为“WILDFLY_CONSOLE_BIND”的新环境变量,该变量将在内部 IP 地址“192.168.5.10”上运行 WildFly 管理控制台。
IP Address for WildFly Console
WILDFLY_CONSOLE_BIND=192.168.5.10
完成后保存并关闭文件。
接下来,使用以下命令编辑 WildFly 启动脚本“/opt/wildfly/bin/launch.sh”。
sudo nano /opt/wildfly/bin/launch.sh
如下更改启动命令。添加选项“-bmanagement $4”以启用 WildFly 管理控制台。
if [[ "$1" == "domain" ]]; then
$WILDFLY_HOME/bin/domain.sh -c $2 -b $3 -bmanagement $4
else
$WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement $4
fi
完成后保存并关闭文件。
现在使用以下命令编辑 WildFly systemd 服务文件“/usr/lib/systemd/system/wildfly.service”。
sudo nano /usr/lib/systemd/system/wildfly.service
添加环境变量“$WILDFLY_CONSOLE_BIND”作为“ExecStart”上的附加命令选项,如下所示。
ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND $WILDFLY_CONSOLE_BIND
完成后保存并关闭文件。
编辑 WildFly systemd 服务文件后,运行下面的“systemctl”命令来重新加载 systemd 管理器。然后,重新启动“wildfly”服务以应用新更改并启用管理控制台。
sudo systemctl daemon-reload
sudo systemctl restart wildfly
现在使用下面的“systemctl”命令检查并验证“wildfly”服务。您应该看到“wildfly”服务正在“正在运行”。在启动脚本“launch.sh”和“standalone.sh”上,您将看到用于启用管理控制台的其他选项。
sudo systemctl status wildfly
默认的 WildFly 管理在 TCP 端口“9990”上运行。要启用对其的访问,您需要添加 UFW 防火墙规则。
运行下面的“ufw”命令添加用于打开 WildFly 管理控制台端口“9990”的 UFW 防火墙规则。然后,检查并验证 UFW 防火墙状态。
sudo ufw allow 9990/tcp
sudo ufw status
您将看到类似于以下屏幕截图的输出。
最后,返回您的网络浏览器并访问服务器 IP 地址,后跟端口“9990”(即:http://192.168.5.10:9990/)。系统将提示您输入 WildFly 管理员用户和密码。
输入您的 WildFly 管理员用户和密码,然后单击“登录”按钮。
如果您的用户名和密码正确,您将看到下面的 WildFly 管理控制台页面。
将应用程序部署到 WildFly
现在您将把“Hello World”示例应用程序部署到 WildFly。您可以从 WildFly 管理控制台或使用命令行界面模式部署应用程序。
创建一个新目录“/opt/testapp”并使用下面的“curl”命令下载示例应用程序“helloworld.war”。
mkdir -p /opt/testapp/
curl --output /opt/testapp/helloworld.war https://raw.githubusercontent.com/aeimer/java-example-helloworld-war/master/dist/helloworld.war
接下来,运行脚本“jboss-cli.sh”以从命令行连接到您的 WildFly 管理。
sudo -u wildfly /opt/wildfly/bin/jboss-cli.sh --connect
连接到 WildFly shell 后,运行以下命令将示例应用程序“/opt/testapp/helloworld.war”部署到 WildFly。
deploy /opt/testapp/helloworld.war
最后,返回您的网络浏览器并使用以下路径“/helloworld”访问您的服务器 IP 地址(即:http://192.168.5.10:8080/helloworld/)。您应该获得示例应用程序“helloworld.war”。
结论
恭喜!您现在已经使用二进制包手动安装在 Ubuntu 22.04 服务器上成功安装了 WildFly。您还为 WildFly 创建了管理员用户,并为 WildFly 启用了基于 Web 的管理控制台。最后,您还学习了如何从命令行界面将应用程序部署到 WildFly。