如何在 Debian 9 上安装 WildFly (JBoss)

2023-11-12

WildFly,以前称为 JBoss ,是一个用 Java 编写的跨平台开源应用程序运行时,可帮助您构建令人惊叹的应用程序。 WildFly 灵活、轻量,并且基于可根据需要添加或删除的可插拔子系统。

在本教程中,我们将引导您完成在 Debian 9 上安装 WildFly 应用程序服务器所需的步骤。

先决条件#

您登录时必须拥有的用户须藤权限能够安装软件包。

安装 Java OpenJDK#

WildFly 需要安装 Java。出色地安装 OpenJDK,这是 Debian 9 中默认的 Java 开发和运行时:

sudo apt updatesudo apt install default-jdk

创建用户#

创建新的系统用户 and group named wildfly与主目录/opt/wildfly将运行 WildFly 服务:

sudo groupadd -r wildflysudo useradd -r -g wildfly -d /opt/wildfly -s /sbin/nologin wildfly

安装WildFly#

在撰写本文时,WildFly 的最新版本是16.0.0。在继续下一步之前,您应该检查下载页面以获得新版本。如果有新版本则替换WILDFLY_VERSION下面的命令中的变量。

下载 WildFly 存档/tmp使用以下目录wget命令:

WILDFLY_VERSION=16.0.0.Finalwget https://download.jboss.org/wildfly/$WILDFLY_VERSION/wildfly-$WILDFLY_VERSION.tar.gz -P /tmp

下载完成后,解压tar.gz文件并将其移动到/opt目录:

sudo tar xf /tmp/wildfly-$WILDFLY_VERSION.tar.gz -C /opt/

创建一个符号链接 wildfly这将指向 WildFly 安装目录:

sudo ln -s /opt/wildfly-$WILDFLY_VERSION /opt/wildfly

WildFly 运行为wildfly需要访问 WildFly 安装目录的用户。更改目录所有权给用户和组wildfly:

sudo chown -RH wildfly: /opt/wildfly

配置Systemd#

WildFly 包包含将 WildFly 作为服务运行所需的文件。

开始于创建目录其中将保存 WildFly 配置文件:

sudo mkdir -p /etc/wildfly

将配置文件复制到/etc/wildfly目录:

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/

该文件允许您指定 WildFly 模式和绑定地址。默认情况下,WildFly 将以独立模式运行并侦听所有接口。根据您的需要编辑文件。

/etc/wildfly/wildfly.conf
# 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=0.0.0.0

接下来,复制 WildFlylaunch.sh脚本到/opt/wildfly/bin/目录:

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/

里面的脚本bin目录需要有可执行标志 :

sudo sh -c 'chmod +x /opt/wildfly/bin/*.sh'

最后一步是将 systemd 单元文件复制到/etc/systemd/system/目录:

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/

重新加载 systemd 管理器配置:

sudo systemctl daemon-reload

启动并启用 WildFly 服务在启动时自动启动:

sudo systemctl start wildflysudo systemctl enable wildfly

使用以下命令检查服务状态:

sudo systemctl status wildfly
* wildfly.service - The WildFly Application Server
   Loaded: loaded (/etc/systemd/system/wildfly.service; disabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-02-17 04:59:39 PST; 2s ago
 Main PID: 10005 (launch.sh)
    Tasks: 62 (limit: 2319)
   CGroup: /system.slice/wildfly.service

调整防火墙#

如果你的服务器是受防火墙保护如果您想从本地网络外部访问 WildFly 界面,您需要打开端口8080.

允许端口上的流量8080输入以下命令:

sudo ufw allow 8080/tcp
在生产环境中运行 WildFly 应用程序时,您很可能会有一个负载均衡器或反向代理最佳实践是将端口 8080 的访问仅限于您的内部网络。

配置 WildFly 身份验证#

现在 WildFly 已安装并运行,下一步是创建一个能够使用管理控制台进行连接或使用 CLI 远程连接的用户。

要添加新用户,请使用add-user.sh位于 WildFly 的 bin 目录的脚本:

sudo /opt/wildfly/bin/add-user.sh

系统会询问您要添加什么类型的用户:

What type of user do you wish to add? 
 a) Management User (mgmt-users.properties) 
 b) Application User (application-users.properties)
(a):

Select a并击中Enter:

接下来,脚本将提示您输入新用户的详细信息:

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : linuxize
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 - The password should be different from the username
 - The password should not be one of the following restricted values {root, admin, administrator}
 - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password : 
Re-enter Password : 
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]: 
About to add user 'linuxize' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'linuxize' to file '/opt/wildfly-16.0.0.Final/standalone/configuration/mgmt-users.properties'
Added user 'linuxize' to file '/opt/wildfly-16.0.0.Final/domain/configuration/mgmt-users.properties'
Added user 'linuxize' with groups  to file '/opt/wildfly-16.0.0.Final/standalone/configuration/mgmt-groups.properties'
Added user 'linuxize' with groups  to file '/opt/wildfly-16.0.0.Final/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to another AS process? 
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? yes
To represent the user add the following to the server-identities definition <secret value="UGFuMjNkZWo3NyNA" />

新用户将被添加到用于身份验证的属性文件中。

测试 WildFly 安装#

要访问默认的 WildFly 页面,请打开你的浏览器并输入:http://<your_domain_or_IP_address>:8080

假设安装成功,将出现类似以下的屏幕:

访问 WildFly 管理控制台#

命令行界面#

要从命令行访问 WildFly 管理控制台,您可以使用jboss-cli.sh script.

导航到 WildFly 的 bin 目录并使用以下命令运行脚本--connect option:

cd /opt/wildfly/bin/./jboss-cli.sh --connect

系统将要求您输入管理用户名和密码(在第 6 步中创建):

Authenticating against security realm: ManagementRealm
Username: linuxize
Password:

登录后,控制台提示符将更改为[standalone@localhost:9990 /]. Type help获取命令列表和命令语法。

从这里,您可以部署和取消部署应用程序、管理用户和组以及配置和监控 WildFly 服务器。

网页界面#

如果您喜欢从 GUI 管理服务器,WildFly 还提供基于 Web 的控制台。

默认情况下,WildFly 管理控制台只能从 localhost 访问:http://localhost:9990/console。使用您在步骤 6 中创建的用户登录。

如果您想从远程位置访问控制台,您需要对wildfly.service, wildfly.conf and launch.sh files.

打开wildfly.conf并附加WILDFLY_CONSOLE_BIND=0.0.0.0在文件末尾。

/etc/wildfly/wildfly.conf
# 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=0.0.0.0

# The address console to bind to
WILDFLY_CONSOLE_BIND=0.0.0.0

打开launch.sh并编辑突出显示的行:

/opt/wildfly/bin/launch.sh
#!/bin/bash

if [ "x$WILDFLY_HOME" = "x" ]; then
    WILDFLY_HOME="/opt/wildfly"
fi

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

重新启动服务以使更改生效:

sudo systemctl restart wildfly

打开wildfly.service并编辑突出显示的行:

/etc/systemd/system/wildfly.service
[Unit]
Description=The WildFly Application Server
After=syslog.target network.target
Before=httpd.service

[Service]
Environment=LAUNCH_JBOSS_IN_BACKGROUND=1
EnvironmentFile=-/etc/wildfly/wildfly.conf
User=wildfly
LimitNOFILE=102642
PIDFile=/var/run/wildfly/wildfly.pid
ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND $WILDFLY_CONSOLE_BIND
StandardOutput=null

[Install]
WantedBy=multi-user.target

创建/var/run/wildfly目录并设置正确的权限:

sudo mkdir /var/run/wildfly/sudo chown wildfly: /var/run/wildfly/

重新加载 systemd 管理器配置:

sudo systemctl daemon-reload

通过运行以下命令重新启动 WildFly 服务:

sudo systemctl restart wildfly

假设您的防火墙没有阻止该端口9990,您应该能够访问 WildFly 管理控制台http://<your_domain_or_IP_address>:9990/console.

结论#

您已在 Debian 9 服务器上成功安装 WildFly。你应该去官方看看WildFly 文档并了解有关 WildFly 功能的更多信息。

如果您遇到问题或有反馈,请在下面发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Debian 9 上安装 WildFly (JBoss) 的相关文章

  • 使用 JDBC 获取 Oracle 11g 的最后插入 ID

    我是使用 Oracle 的新手 所以我将放弃之前已经回答过的内容这个问题 https stackoverflow com questions 3131064 get id of last inserted record in oracle
  • 获取文件的锁

    我想在对特定文件开始 threo read 时获取文件上的锁定 以便其他应用程序无法读取已锁定的文件并希望在线程终止时释放锁定文件 您可以获得一个FileLock https docs oracle com javase 8 docs ap
  • 如何强制jar使用(或jar运行的jvm)utf-8而不是系统的默认编码

    我的Windows默认编码是GBK 而我的Eclipse完全是utf 8编码 因此 在我的 Eclipse 中运行良好的应用程序崩溃了 因为导出为 jar 文件时这些单词变得不可读 我必须在 bat 文件中写入以下行才能运行该应用程序 st
  • 从 MS Access 中提取 OLE 对象(Word 文档)

    我有一个 Microsoft Access 数据库 其中包含一个包含 Microsoft Word 文档的 OLE 对象字段 我试图找到代码来检索保存在 OLE 对象中的文件 以便用户可以从我的 JavaFx 应用程序中的按钮下载它 但没有
  • org/codehaus/plexus/archiver/jar/JarArchiver(不支持的major.minor版本49.0)-Maven构建错误

    下午大家 我在尝试构建项目时收到上述错误 我很确定这与使用 Java 1 6 编译的 Maven 最新更新有关 而我们尝试构建的项目是 1 4 项目 在此之前的插件工作没有问题 因此我将以下内容添加到 POM xml 文件中以尝试强制使用现
  • 虽然我的类已加载,但 Class.forName 抛出 ClassNotFoundException

    代码如下 它的作用是加载我放在主目录中的 jar 文件中的所有类 import java io File import java util jar JarFile import java util jar JarEntry import j
  • 当 minifyEnabled 为 true 时 Android 应用程序崩溃

    我正在使用多模块应用程序 并且该应用程序崩溃时minifyEnabled true in the installed模块的build gradle 以下是从游戏控制台检索到的反混淆堆栈跟踪 FATAL EXCEPTION Controlle
  • 在 Java 中通过 XSLT 分解 XML

    我需要转换具有嵌套 分层 表单结构的大型 XML 文件
  • 如何删除日期对象的亚秒部分

    当 SQL 数据类型为时间戳时 java util Date 存储为 2010 09 03 15 33 22 246 如何在存储记录之前将亚秒设置为零 例如 在本例中为 246 最简单的方法是这样的 long time date getTi
  • Java:如何确定文件所在的驱动器类型?

    Java 是否有一种独立于平台的方法来检测文件所在的驱动器类型 基本上我有兴趣区分 硬盘 可移动驱动器 如 USB 记忆棒 和网络共享 JNI JNA 解决方案不会有帮助 可以假设 Java 7 您可以使用 Java 执行 cmd fsut
  • 无法在 Java/Apache HttpClient 中处理带有垂直/管道栏的 url

    例如 如果我想处理这个网址 post new HttpPost http testurl com lists lprocess action LoadList 401814 1 Java Apache 不允许我这么做 因为它说竖线 是非法的
  • Java - 从 XML 文件读取注释

    我必须从 XML 文件中提取注释 我找不到使用 JDOM 或其他东西来让它们使用的方法 目前我使用 Regex 和 FileReader 但我不认为这是正确的方法 您可以使用 JDOM 之类的东西从 XML 文件中获取注释吗 或者它仅限于元
  • 使用Java绘制维恩图

    我正在尝试根据给定的布尔方程绘制维恩图 例如 a AND b AND c我想在 Android 手机上执行此操作 因此我需要找到一种使用 Java 来执行此操作的方法 我找到了一个完美的小部件 它可以完成我在这方面寻找的一切布尔代数计算器
  • 如何从 Ant 启动聚合 jetty-server JAR?

    背景 免责声明 I have veryJava 经验很少 我们之前在 Ant 构建期间使用了 Jetty 6 的包装版本来处理按需静态内容 JS CSS 图像 HTML 因此我们可以使用 PhantomJS 针对 HTTP 托管环境运行单元
  • JMS 中的 MessageListener 和 Consumer 有什么区别?

    我是新来的JMS 据我了解Consumers能够从队列 主题中挑选消息 那么为什么你需要一个MessageListener因为Consumers会知道他们什么时候收到消息吗 这样的实际用途是什么MessageListener 编辑 来自Me
  • Java 的 PriorityQueue 与最小堆有何不同?

    他们为什么命名PriorityQueue如果你不能插入优先级 它看起来与堆非常相似 有什么区别吗 如果没有区别那为什么叫它PriorityQueue而不是堆 默认的PriorityQueue是用Min Heap实现的 即栈顶元素是堆中最小的
  • 记录类名、方法名和行号的性能影响

    我正在我的 java 应用程序中实现日志记录 以便我可以调试应用程序投入生产后可能出现的潜在问题 考虑到在这种情况下 人们不会奢侈地使用 IDE 开发工具 以调试模式运行事物或单步执行完整代码 因此在每条消息中记录类名 方法名和行号将非常有
  • 检查应用程序是否在 Android Market 上可用

    给定 Android 应用程序 ID 包名称 如何以编程方式检查该应用程序是否在 Android Market 上可用 例如 com rovio angrybirds 可用 而 com random app ibuilt 不可用 我计划从
  • ArrayList.clear() 和 ArrayList.removeAll() 有什么区别?

    假如说arraylist定义为ArrayList
  • 即使调整大小,如何获得屏幕的精确中间位置

    好的 这个问题有两部分 当我做一个JFrame 并在其上画一些东西 即使我将宽度设置为 400 并使其在一个项目击中它时 当然 允许项目宽度 它会反弹回来 但由于某种原因 它总是偏离屏幕约 10 个像素 有没有办法解决这个问题 或者我只需要

随机推荐

  • 如何在 Ubuntu 16.04 上安装 Zend 框架

    Zend框架3 是可用于创建应用程序的最新版本 最新版本提供了比以前版本更快的应用程序 Zend 是一个用于开发 Web 应用程序和服务的开源框架 它使用 100 面向对象的代码 本教程将帮助您在 Ubuntu 16 04 LTS 系统上安
  • 如何使用 DNF 从 Fedora 22 升级到 Fedora 23

    软呢帽23已发布并可供下载和安装 本文将帮助您使用以下命令从 Fedora 22 升级到 Fedora 23DNF yum 的替代 命令行实用程序 检查 Fedora 版本 使用以下命令之一检查您当前的 Fedora 系统版本 Fedora
  • 如何创建具有授予权限的新 MySQL 用户

    MySQL 是一个关系数据库管理系统 用于以表格格式存储数据 它为用户帐户和授予权限提供了高度的灵活性 本教程将为您提供创建 MySQL 用户帐户和授予数据库权限的简短概述 创建具有权限的MySQL用户 在这里 我们以对所有数据库拥有完全权
  • 通过贸易展览曝光促进您的业务

    中小企业是每个经济体的支柱 由于多种原因 每个州都应该鼓励和支持此类小公司 首先 这些企业对市场变化和供需失衡的反应速度相当快 其次 中小型企业通常具有社区联系紧密的特点 员工之间相互了解 从而产生更强烈的团结感 所有这些特点都意味着这类业
  • 如何列出 Ubuntu 上已安装的软件包

    在本教程中 我们将向您展示如何列出和过滤 Ubuntu 上已安装的软件包 当您需要在另一台计算机上安装相同的软件包或想要重新安装系统时 了解如何列出 Ubuntu 系统上已安装的软件包会很有帮助 我们还将向您展示如何检查是否安装了特定的软件
  • 如何提取(解压缩)tar.xz 文件

    The tar命令允许您创建和提取 tar 档案 它支持多种压缩程序 例如 gzip bzip2 lzip lzma lzop xz 和 compress Xz是一种基于LZMA算法的流行的文件压缩算法 按照约定 压缩后的 tar 存档的名
  • 如何在 Debian 9 上安装 Apache Maven

    Apache Maven 是一个开源项目管理和理解工具 主要用于 Java 项目 Maven 使用项目对象模型 POM 它本质上是一个 XML 文件 其中包含有关项目 配置详细信息 项目依赖项等的信息 在本教程中 我们将向您展示在 Debi
  • 使用 SSH 配置文件

    如果您经常通过 SSH 连接到多个远程系统 您会发现记住所有远程 IP 地址 不同的用户名 非标准端口和各种命令行选项即使不是不可能 也是很困难的 一种选择是创建 bash 别名对于每个远程服务器连接 然而 对于这个问题还有另一种更好 更直
  • 如何在 Ubuntu 20.04 上更改主机名

    主机名是在操作系统安装期间设置的 或者是在创建虚拟机时动态分配给虚拟机的 本指南介绍了如何在 Ubuntu 20 04 上设置或更改主机名 而无需重新启动系统 了解主机名 主机名是标识网络上设备的标签 同一网络上不应有两台或更多台具有相同主
  • 如何在Ubuntu上卸载软件包

    有时 您可能会在 Ubuntu 上安装一个应用程序 但在尝试后 您会发现该应用程序不适合您 在这种情况下 您可能需要卸载该软件包 在本文中 我们将向您展示如何使用图形化的 Ubuntu 软件中心 以及通过命令行 使用apt or apt g
  • 如何在 Ubuntu 20.04 上安装和使用 Curl

    curl是一个命令行实用程序 用于从远程服务器传输数据或向远程服务器传输数据 和curl 您可以使用支持的协议之一下载或上传数据 包括 HTTP HTTPS SCP SFTP and FTP 本文介绍了如何安装Curl在 Ubuntu 20
  • 如何使用 Linux 屏幕

    您是否曾经遇到过这样的情况 您在远程计算机上执行长时间运行的任务 突然连接断开 SSH 会话终止 您的工作丢失 好吧 我们所有人都曾在某个时刻发生过这种事 不是吗 幸运的是 有一个实用程序叫做screen这使我们能够恢复会议 介绍 Scre
  • 如何在 Ubuntu Linux 中更改 root 密码

    root 用户 或超级用户 是所有 Linux 和类 Unix 系统上都存在的特殊用户帐户 它可以完全访问系统上的每个命令和任何资源 没有任何限制 如果您从其他 Linux 发行版转到 Ubuntu 您可能想知道默认 root 密码是什么或
  • 如何在 CentOS 8 上安装 Pip

    Pip 是一个包管理系统 允许您安装 删除以及以其他方式管理用 Python 编写的软件包 它可用于从 Python 包索引 PyPI 和其他索引安装包 在本教程中 我们将解释如何在 CentOS 8 上安装适用于 Python 2 和 3
  • 如何在 Vim / Vi 中保存文件并退出编辑器

    对于许多在命令行上花费大量时间的用户来说 Vim 是首选的文本编辑器 与其他编辑器不同 Vim 有多种操作模式 这对于新用户来说可能有点吓人 Vim 或其前身 Vi 预装在 macOS 和几乎所有 Linux 发行版上 当您遇到您最喜欢的编
  • 如何创建和选择 MySQL 数据库

    MySQL是最流行的开源关系数据库管理系统 本教程介绍如何通过命令行创建 MySQL 或 MariaDB 数据库 在你开始之前 我们假设您的系统上已经安装了 MySQL 或 MariaDB 服务器 所有命令均以管理用户身份执行 最小特权创建
  • 如何提取(解压缩)Tar Bz2 文件

    The tar命令允许您创建和提取 tar 档案 它支持多种压缩程序 例如 gzip bzip2 lzip lzma lzop xz 和 compress Bzip2 是最流行的 tar 文件压缩算法之一 按照约定 压缩后的 tar 存档的
  • 如何检查 Linux 中的内存使用情况

    在对系统或应用程序速度缓慢或行为不当进行故障排除时 首先要检查的事情之一是系统内存使用情况 本文介绍如何使用几个不同的命令检查 Linux 中的 RAM 使用情况 free命令 free是检查Linux系统内存使用情况最常用的命令 它显示有
  • 在 CentOS 8 上使用 Let's Encrypt 保护 Apache

    Let s Encrypt 是由互联网安全研究小组 ISRG 开发的免费 自动化 开放的证书颁发机构 提供免费的 SSL 证书 Let s Encrypt 颁发的证书受到所有主要浏览器的信任 并且自颁发之日起 90 天内有效 本教程介绍如何
  • 如何在 Debian 9 上安装 WildFly (JBoss)

    WildFly 以前称为 JBoss 是一个用 Java 编写的跨平台开源应用程序运行时 可帮助您构建令人惊叹的应用程序 WildFly 灵活 轻量 并且基于可根据需要添加或删除的可插拔子系统 在本教程中 我们将引导您完成在 Debian