WildFlyへのインストール
Liferay DXP 2025.Q3+/Portal 2026.Q1+
Jakarta より前の Liferay バージョンについては、 WildFly への以前のバージョンのインストール を参照してください。
WildFlyにインストールするには、DXP WARファイルのインストール、依存関係のインストール、WildFlyの設定、およびWildFlyへのDXPのデプロイが必要です。データベースとメールサーバーへの接続も設定する必要があります。
前提条件
Liferay DXP/Portal を実行するには、 サポートされている Java バージョン が必要です。詳細については、 JVM 構成 を参照してください。
これらのファイルは、 ヘルプセンター (サブスクリプション) または Liferay コミュニティ ダウンロード からダウンロードしてください。管理者は以下をダウンロードする必要があります。
- DXP WARファイル
- OSGi依存関係のZIPファイル
- ワイルドフライ30+
インストール手順では、以下の用語を使用します。
[Liferay Home]: WildFlyサーバーフォルダを含むフォルダ( $WILDFLY_HOME と呼ばれます)。 DXP をインストールしてデプロイすると、 データ、 デプロイ、および ログ フォルダーが生成されます。
$WILDFLY_HOME: WildFlyサーバーのフォルダ。通常は wildfly-[version] という名前になります。
依存関係とDXP WARのインストール
-
Wildfly をクリーンインストールした状態で、
$WILDFLY_HOME/standalone/deployments/ROOT.warフォルダが存在する場合は、そのサブフォルダとファイルをすべて削除してください。 -
DXP WAR ファイルを
$WILDFLY_HOME/standalone/deployments/ROOT.warフォルダーに解凍します (このフォルダーが存在しない場合は作成します)。 -
OSGi Dependencies ZIP ファイルを
[Liferay Home]/osgiフォルダーに解凍します (このフォルダーが存在しない場合は作成してください)。 LiferayのOSGiランタイムは、これらのモジュールに依存しています。
WildFly上でDXPをスタンドアロンモードとドメインモードで実行する際の比較
WildFlyは、 スタンドアロン モードまたは ドメイン モードのいずれでも起動できます。ドメインモードでは、単一のコントロールポイントから複数のアプリケーションサーバーインスタンスを管理できます。このようなアプリケーション サーバーの集合は、 ドメイン と呼ばれます。スタンドアロンモードとドメインモードの詳細については、 WildFly 管理者ガイド のこのトピックのセクションを参照してください。 DXPはスタンドアロンモードではWildFlyを完全にサポートしますが、ドメインモードではサポートしません。
DXPはスタンドアロンモードで実行されている場合はWildFlyをサポートしますが、ドメインモードで実行されている場合はサポートしません。 DXPの自動デプロイは、マネージドデプロイメントでは機能しません。なぜなら、WildFlyは(展開済みまたは未展開の)ファイルをコピーすることによって、マネージドデプロイメントのコンテンツを管理しているからです。これにより、JSPフックとExtプラグインが意図したとおりに機能しなくなります。例えば、DXPのJSPオーバーライドメカニズムはアプリケーションサーバーに依存しているため、マネージドドメインモードで実行されているWildFlyではJSPフックは機能しません。ただし、JSPフックとExtプラグインは非推奨であるため、使用していない可能性があります。
ドメインモードの展開を使用する場合は、コマンドラインインターフェースを使用します。
これは、DXPが複数のWildFlyサーバー上のクラスタ環境で実行されることを妨げるものではありません。スタンドアロンモードで動作するWildFlyサーバー上で、DXPインスタンスのクラスタをセットアップできます。詳細については、 クラスタリングに関する記事 を参照してください。
WildFlyの設定
WildFlyでDXPを実行するように設定するには、以下のことが必要です。
- 環境変数の設定
- プロパティと記述子の設定
- 不要な構成を削除する
$WILDFLY_HOME/standalone/configuration/standalone.xml に対して、以下の変更を行ってください。
-
</extensions>タグを<server>s 内で見つけます。その閉じタグのすぐ下に、以下のシステムプロパティがまだ存在しない場合は挿入してください。<system-properties> <property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8" /> <property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true" /> </system-properties> -
ログから
WFLYSRV0059およびWFLYEE0007のメッセージをフィルタリングします。<subsystem xmlns="urn:jboss:domain:logging:8.0">要素の<console-handler>タグに、<level name="INFO"/>タグの直下に、次の<filter-spec>タグを追加します。<filter-spec value="not(any(match("WFLYSRV0059"),match("WFLYEE0007")))" /> -
deployment-timeout="600"設定を<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">要素の<deployment-scanner>タグに追加して、デプロイメント スキャナーのタイムアウトを追加します。例えば、<deployment-scanner deployment-timeout="600" path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/> -
<subsystem xmlns="urn:jboss:domain:undertow:12.0" ...>要素から、ウェルカムコンテンツ要素をコメントアウトします。例えば、<!--<location name="/" handler="welcome-content"/>-->そして
<handlers> <!--<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>--> </handlers> -
IBM JDK を WildFly サーバーで使用している場合は、
$WILDFLY_HOME/modules/system/layers/base/sun/jdk/main/module.xmlファイルに移動します。次に、<paths>...</paths>要素内にこれらのパスを挿入して、デプロイメント例外とイメージアップロードの問題を解決します。<path name="com/sun/crypto" /> <path name="com/sun/crypto/provider" /> <path name="com/sun/image/codec/jpeg" /> <path name="com/sun/org/apache/xml/internal/resolver" /> <path name="com/sun/org/apache/xml/internal/resolver/tools" />
チェックポイント:
続行する前に、次のプロパティが standalone.xml ファイルに設定されていることを確認してください。
- 新しい
<system-property>が追加されました。 - 新しい
<filter-spec>が追加されました。 <deployment-timeout>は600に設定されています。- 新しい
<security-domain>が作成されます。 - ウェルカムコンテンツは無効になっています。
次に、JVMと起動スクリプトを構成します。
$WILDFLY_HOME/bin/ フォルダで、スタンドアロン ドメインの設定スクリプト ファイル standalone.conf を開きます。
- ファイルのエンコーディングを
UTF-8に設定します。 - ユーザーのタイムゾーンを
GMTに設定します。 - 優先プロトコルスタックを設定します。
- 利用可能なデフォルトのメモリ容量を増やします。
DXPでは、アプリケーションサーバーのJVMが GMT タイムゾーンと UTF-8 ファイルエンコーディングを使用することが求められます。
standalone.confスクリプトを次のように編集します。
-
if [ "x$JAVA_OPTS" = "x" ];ステートメントの下で、JAVA_OPTS代入から JVM サイジング オプションを削除します。例えば、これを置き換えますJAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true"これを使って:
JAVA_OPTS="-Djava.net.preferIPv4Stack=true" -
以下のJavaオプション設定をファイルの末尾に追加してください。
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Duser.timezone=GMT -Xms2560m -Xmx2560m -XX:MaxNewSize=1536m -XX:MaxMetaspaceSize=768m -XX:MetaspaceSize=768m -XX:NewSize=1536m -XX:SurvivorRatio=7 -Djboss.as.management.blocking.timeout=1800" JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/sun.net.www.protocol.http=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED --add-opens=jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED" export JDK_JAVA_OPTIONS
Javaオプションとメモリ引数について以下に説明します。
JVMオプションの説明
| オプション | 説明 |
|---|---|
-Dfile.encoding=UTF-8 | DXPにはUTF-8ファイルエンコーディングが必要です。 |
-Djava.net.preferIPv4Stack=true | IPv6スタックよりもIPv4スタックを優先する。 |
-Djboss.as.management.blocking.timeout=1800 | WildFlyの起動に失敗した場合に再試行するタイムアウトを設定してください。 |
-Duser.timezone=GMT | DXPでは、アプリケーションサーバーのJVMがGMTタイムゾーンを使用することが求められます。 |
Liferayの一部のコンポーネントが機能するには、詳細なリフレクションオプションが必要です。
メモリ引数の説明
| メモリ引数 | 説明 |
|---|---|
-Xms | ヒープの初期スペース。 |
-Xmx | ヒープの最大スペース。 |
-XX:NewSize | 最初の新しいスペース。通常、新しいサイズをヒープ全体の半分に設定すると、より小さな新しいサイズを使用するよりもパフォーマンスが向上します。 |
-XX:MaxNewSize | 最大の新しいスペース。 |
-XX:MetaspaceSize | 静的コンテンツ用の初期スペース。 |
-XX:MaxMetaspaceSize | 静的コンテンツ用の最大スペース。 |
-XX:SurvivorRatio | 新しいスペースとSurvivor領域の比率。 Survivor領域は、古い世代の領域に昇格する前に、若い世代のオブジェクトを保持します。 |
DXPをインストールした後、これらの設定(これらのJVMオプションを含む)をさらに調整することで、パフォーマンスを向上させることができます。詳細については、 Liferay のチューニング および JVM のチューニング を参照してください。
チェックポイント:
-
ファイルエンコーディング、ユーザータイムゾーン、優先プロトコルスタックは、
standalone.conf.shで設定されています。スクリプトのJAVA_OPTS -
デフォルトで利用可能なメモリ容量が増加しました。
WildFlyへのDXPインストールに必要なスクリプトの変更作業が完了しました。
Liferayにおけるデータソースの設定
DXPにはデモンストレーション目的には最適なハイパーソニックデータベースが組み込まれていますが、 は本番環境では使用しないでください。本番環境では、フル機能のサポートされているRDBMSを使用してください。データベースの設定方法については、 データベースの設定 を参照してください。
Liferay DXPは、DXPに組み込まれているデータソースを使用する(推奨)か、アプリケーションサーバー上に作成したデータソースを使用してデータベースに接続できます。
DXP を初めて実行するときに、 セットアップ ウィザード を使用して、DXP の組み込みデータ ソースをデータベースで構成できます。または、データベースの portal-ext.properties ファイル で、データベースの データベース テンプレート に基づいてデータ ソースを構成することもできます。
Wildflyにおけるデータソースの設定
WildFlyを使用してデータソースを管理する場合は、以下の手順に従ってください。
-
DXP WARファイルには、MariaDBとPostgreSQLのドライバが含まれています。以前の戦争ではそれらはなかった。 WAR に、使用しているサポート対象データベースのドライバが含まれていない場合は、データベースベンダーの JDBC JAR ファイルをダウンロードし、
$WILDFLY_HOME/standalone/deployments/ROOT.war/WEB-INF/shielded-container-libフォルダに配置します。これは、WildFly 上の Liferay のみに必要な依存関係を追加するための推奨方法です。あるいは、JBossのグローバルクラスパスを使用して依存関係をインストールすることもできます。
DXPにはHypersonicデータベースが同梱されており、テスト目的で役立ちます。本番環境の DXP インスタンスには HSQL を使用しないでください。
-
まだ作成していない場合は、
module.xmlという名前のファイルを$JBOSS_HOME/modules/com/liferay/portal/mainフォルダーに作成してください。ファイル内で、ポータルモジュールとその必要な依存関係をすべて宣言します。<?xml version="1.0"?> <module name="com.liferay.portal" xmlns="urn:jboss:module:1.5"> <dependencies> <module name="jakarta.servlet.api" optional="true" /> <module name="jakarta.transaction.api" /> </dependencies> </module> -
DXP WAR またはデータベースベンダーから JDBC JAR を取得し、
$WILDFLY_HOME/modules/com/liferay/portal/mainフォルダーにコピーします。 -
$WILDFLY_HOME/modules/com/liferay/portal/mainフォルダ内のmodule.xmlを更新し、ポータルモジュールと JDBC JAR を宣言してください。<resources> <resource-root path="[place your database vendor's JAR file name here]" /> </resources> -
$WILDFLY_HOME/standalone/configuration/standalone.xmlファイルの<datasources>要素内にデータソースを追加します。<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" jta="true" use-java-context="true" use-ccm="true"> <connection-url>[place the URL to your database here]</connection-url> <driver>[place your driver name here]</driver> <security user-name=[place your user name here] password=[place your password here]/> </datasource>データベースのURL、ユーザー名、パスワードは、必ず適切な値に置き換えてください。
注記データ ソース
jndi-nameを変更する必要がある場合は、<default-bindings>タグ内のdatasource要素を編集します。 -
standalone.xmlファイルの<drivers>要素にドライバ クラス名を追加します。この要素は<datasources>要素内にもあります。<drivers> <driver name="[name of database driver]" module="com.liferay.portal"> <driver-class>[JDBC driver class]</driver-class> </driver> </drivers>MySQLを使用する最終的なデータソースサブシステムは、次のようになります。
<subsystem xmlns="urn:jboss:domain:datasources:1.0"> <datasources> <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" jta="true" use-java-context="true" use-ccm="true"> <connection-url>jdbc:mysql://localhost/lportal</connection-url> <driver>mysql</driver> <security> <user-name>root</user-name> <password>root</password> </security> </datasource> <drivers> <driver name="mysql" module="com.liferay.portal"> <driver-class>com.mysql.cj.jdbc.Driver</driver-class> </driver> </drivers> </datasources> </subsystem> -
Liferay Home フォルダー内の
portal-ext.propertiesファイルで、JNDI データ ソースを指定します。例えば、jdbc.default.jndi.name=java:jboss/datasources/ExampleDS
データソースの設定が完了し、使用準備が整いました。
メールサーバーに接続する
データベースの設定と同様に、メールを設定する最も簡単な方法は、DXPにメールセッションを処理させることです。 DXPに組み込まれているメールセッションを使用する場合は、このセクションをスキップして、コントロールパネルでメールセッションを設定してください。
WildFlyでメールセッションを管理するには、以下の手順に従ってください。
-
$WILDFLY_HOME/standalone/configuration/standalone.xmlファイルで、メールサブシステムを次のように指定します。<subsystem xmlns="urn:jboss:domain:mail:4.0"> <mail-session jndi-name="java:jboss/mail/MailSession" name="mail-smtp"> <smtp-server ssl="true" outbound-socket-binding-ref="mail-smtp" username="USERNAME" password="PASSWORD"/> </mail-session> </subsystem> ... <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> ... <outbound-socket-binding name="mail-smtp"> <remote-destination host="[place SMTP host here]" port="[place SMTP port here]"/> </outbound-socket-binding> </socket-binding-group> -
Liferay Home の
portal-ext.propertiesファイルで、メール セッションを参照します。例えば、mail.session.jndi.name=java:jboss/mail/MailSession
DXPの展開
-
ROOT.warのデプロイをトリガーするには、ROOT.war.dodeployという名前の空のファイルを$WILDFLY_HOME/standalone/deployments/フォルダーに作成します。 -
WildFlyアプリケーションサーバーを起動するには、
$WILDFLY_HOME/binに移動し、standalone.shを実行します。 WildFly はROOT.war.dodeployファイルを検出し、ファイルプレフィックスに一致する Web アプリケーション (つまり、ROOT.war) をデプロイします。
DXPのデプロイ後に、 PhaseOptimizerを含む以下のような過剰な警告やログメッセージが表示される場合があります。これらは良性なので、無視しても構いません。これらのメッセージは、アプリサーバーのログレベルまたはログフィルターを調整することでオフにできます。
May 02, 2018 9:12:27 PM com.google.javascript.jscomp.PhaseOptimizer$NamedPass process
WARNING: Skipping pass gatherExternProperties
May 02, 2018 9:12:27 PM com.google.javascript.jscomp.PhaseOptimizer$NamedPass process
WARNING: Skipping pass checkControlFlow
May 02, 2018 9:12:27 PM com.google.javascript.jscomp.PhaseOptimizer$NamedPass process
INFO: pass supports: [ES3 keywords as identifiers, getters, reserved words as properties, setters, string continuation, trailing comma, array pattern rest, arrow function, binary literal, block-scoped function declaration, class, computed property, const declaration, default parameter, destructuring, extended object literal, for-of loop, generator, let declaration, member declaration, new.target, octal literal, RegExp flag 'u', RegExp flag 'y', rest parameter, spread expression, super, template literal, modules, exponent operator (**), async function, trailing comma in param list]
current AST contains: [ES3 keywords as identifiers, getters, reserved words as properties, setters, string continuation, trailing comma, array pattern rest, arrow function, binary literal, block-scoped function declaration, class, computed property, const declaration, default parameter, destructuring, extended object literal, for-of loop, generator, let declaration, member declaration, new.target, octal literal, RegExp flag 'u', RegExp flag 'y', rest parameter, spread expression, super, template literal, exponent operator (**), async function, trailing comma in param list, object literals with spread, object pattern rest
Liferay DXP Enterpriseサブスクリプションをお持ちの場合、DXPはアクティベーションキーを要求します。詳細については、 Liferay DXP のアクティベーション を参照してください。
WildFly上でDXPを実行しています。
次のステップ
管理者ユーザーとしてサインインし、DXP上でソリューションの構築を開始できます。あるいは、Liferay DXP の設定に関するその他のトピックについても確認することができます: