WildFlyへのインストール
WildFlyにインストールするには、DXP WARのインストール、依存関係のインストール、WildFlyの設定、およびWildFlyへのDXPのデプロイが必要です。 データベースとメールサーバーの接続も設定する必要があります。
前提条件
Liferay DXPにはJava JDK 8または11が必要です。 詳細は、 互換性マトリクス を参照してください。
ヘルプセンター (サブスクリプション)または Liferayコミュニティのダウンロード から、これらのファイルをダウンロードしてください。 管理者は以下をダウンロードする必要があります。
- DXP WARファイル
- OSGi依存関係のZIPファイル
- 依存関係のZIPファイル(DXP 7.3以前)
インストール手順では、これらの用語を使用しています。
[Liferay Home]
:WildFlyサーバーフォルダを含むフォルダ( $WILDFLY_HOME
と表記されています。) DXPをインストールしてデプロイした後、data
、deploy
、およびlogs
フォルダを生成します。
$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ランタイムは、これらのモジュールに依存しています。 -
DXP 7.4+ WARファイルには、MariaDBおよびPostgreSQLのドライバーが含まれています。 以前のWARにはそれらがありません。 7.4以降のWARに、使用中のサポートされているデータベースのドライバーがない場合は、データベースベンダーのJDBC JARファイルをダウンロードして、
$WILDFLY_HOME/standalone/deployments/ROOT.war/WEB-INF/shielded-container-lib
フォルダーに配置します。サポートされているデータベースの一覧については、 互換性マトリックス を参照してください。
HypersonicデータベースはDXPにバンドルされており、テスト目的に役立ちます。 本番環境のDXPインスタンスにはHSQLを使用しないでください。
以前のバージョンの依存関係をインストールする
DXP 7.3以前の場合は、次の追加手順に従います。
-
依存関係のZIPファイルを
$WILDFLY_HOME/modules/com/liferay/portal/main
フォルダに解凍します(このフォルダが存在しない場合は作成します)。 -
$WILDFLY_HOME/modules/com/liferay/portal/main
フォルダにmodule.xml
というファイルを作成します。 このファイルでは、データベースベンダーの JAR ファイル、ポータルモジュール、およびその必要なリソースや依存関係のすべてにパスを設定した resource-root 要素を宣言します。[place your database vendor's JAR file name here]
をデータベースのドライバーJARに置き換えます。依存関係ZIPのJARごとに、
path
属性がJAR名に設定されたresource-root
要素を追加します。 たとえば、com.liferay.petra.concurrent.jar
ファイルに次のようなresource-root
要素を追加します。
チェックポイント:
- OSGiの依存関係は、
[Liferay Home]/osgi
フォルダに解凍されています。 - データベースベンダーのJDBCドライバーがインストールされています。
module.xml
は<resource-root>
要素内のすべての JAR をリストしています。
WildFlyでのスタンドアロンモードとドメインモードのDXPの実行
WildFlyは、 スタンドアロン モードまたは ドメイン モードのいずれかで起動できます。 ドメインモードでは、単一のコントロールポイントから複数のアプリケーションサーバーインスタンスを管理できます。 このようなアプリケーションサーバーのコレクションは、 ドメイン と呼ばれます。 スタンドアロンモードとドメインモードの詳細は、 WildFly管理ガイド このトピックに関するセクションを参照してください。 DXPは、スタンドアロンモードではWildFlyを完全にサポートしますが、ドメインモードではサポートしません。
DXPは、スタンドアロンモードで実行する場合はWildFlyをサポートしますが、ドメインモードで実行する場合はサポートしません。 WildFlyはファイル(展開または非展開)をコピーして管理対象デプロイメントのコンテンツを管理するため、DXPの自動展開は管理対象デプロイメントでは機能しません。 これにより、JSPフックとExtプラグインが意図したとおりに機能しなくなります。 たとえば、DXPのJSPオーバーライドメカニズムはアプリケーションサーバーに依存しているため、JSPフックは管理対象ドメインモードで実行されているWildFlyでは機能しません。 ただし、JSPフックとExtプラグインは非推奨であるため、使用していない可能性があります。
ドメインモードデプロイメントを使用する場合は、コマンドラインインターフェースを使用します。
これにより、DXPが複数のWildFlyサーバー上のクラスター環境で実行されるのを防ぐことはできません。 スタンドアロンモードで実行されていてWildFlyサーバーで実行されているDXPインスタンスのクラスターを設定できます。 詳細については、クラスタリングの記事 を参照してください。
WildFlyの構成
WildFlyがDXPを実行するように構成するには、次のものが含まれます。
- 環境変数の設定
- プロパティと記述子の設定
- 不要な構成を削除する
$WILDFLY_HOME/standalone/configuration/standalone.xml
に以下の変更を加えます。
-
JSPにJava 8 VM互換を使用するようにサーブレットコンテナを設定します。 デフォルトサーブレットコンテナを
<servlet-container name="default">``<subsystem xmlns="urn:jboss:domain:undertow:12.0" ...
要素で探し出します。 サーブレットコンテナの<jsp-config>
要素に、development
、source-vm
、target-vm
属性を以下のように設定します。 -
終了
</extensions>
タグを<server>
sの中から見つけます。 その終了タグの直下に、まだ存在していなければ、以下のシステムプロパティを挿入します。 -
ログから
WFLYSRV0059
とWFLYEE0007
のメッセージを除外します。<subsystem xmlns="urn:jboss:domain:logging:8.0">
要素の<console-handler>
タグの中に、<level name="INFO"/>
タグの直下に次の<filter-spec>
タグを追加します。 -
deployment-timeout="600"
の設定を、<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
要素内の<deployment-scanner>
タグに追加することで、デプロイメントスキャナーのタイムアウトを追加しています。 例: -
LiferayのJAASセキュリティドメインを
<subsystem xmlns="urn:jboss:domain:security:2.0">
の<security-domains>
要素に追加します。 追加するドメインコードは以下の通りです。 -
<subsystem xmlns="urn:jboss:domain:undertow:12.0" ...>
要素からウェルカムコンテンツ要素をコメントアウトします。 例えば、および
チェックポイント:
続行する前に、次のプロパティが 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オプションの設定をファイルの最後に追加します。
Javaオプションとメモリ引数について以下に説明します。
JVMオプションの説明
オプション | 説明 |
---|---|
-Dfile.encoding=UTF-8 | DXPにはUTF-8ファイルエンコーディングが必要です。 |
-Djava.locale.providers=JRE,COMPAT,CLDR | これは、JDK 11で4桁の日付を表示するために必要です。 |
-Djava.net.preferIPv4Stack=true | IPv6よりもIPv4スタックを優先します。 |
-Dlog4j2.formatMsgNoLookups=true | リモートコード実行(RCE)の脆弱性を解決します。 詳細は、 LPS-143663 を参照してください。 |
-Duser.timezone=GMT | DXPでは、アプリケーションサーバーのJVMがGMTタイムゾーンを使用する必要があります。 |
メモリ引数の説明
メモリ引数 | 説明 |
---|---|
-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をインストールするための規定のスクリプト変更が完了しました。
IBM JDKの使用
WildFlyサーバーでIBM JDKを使用する場合は、以下の追加手順を実行します。
-
DXP 7.3 以前の場合、
$WILDFLY_HOME/modules/com/liferay/portal/main/module.xml
ファイルに移動して、この依存関係を<dependencies>
要素内に挿入してください:<module name="ibm.jdk" />
-
$WILDFLY_HOME/modules/system/layers/base/sun/jdk/main/module.xml
ファイルに移動し、<paths>...</paths>
要素内に次のパスを挿入します。
追加されたパスは、デプロイメントの例外およびイメージのアップロードの問題に関する問題を解決します。
Liferayにおけるデータソースの構成
DXPには組み込みのHypersonicデータベースが含まれています。これはデモンストレーション目的には最適ですが、 本番環境では使用しないでください 。 本番環境では、フル機能のサポートされているRDBMSを使用してください。 データベースのセットアップについては、データベースの設定を参照してください。
Liferay DXPは、DXPに組み込まれているデータソースを使用する(推奨)か、アプリケーションサーバー上に作成したデータソースを使用してデータベースに接続できます。
セットアップウィザードを使用して、DXPを初めて実行するときに、データベースを使用してDXPの組み込みデータソースを構成できます。 または、データベースの データベーステンプレートに 基づいて、データソースを portal-ext.properties
ファイルで構成できます。
Wildflyのデータソース構成
WildFlyを使用してデータソースを管理する場合は、次の手順に従います。
-
DXP WAR(7.4以降)またはデータベースベンダーからJDBC JARを取得し、
$WILDFLY_HOME/modules/com/liferay/portal/main
フォルダにコピーします。 -
$WILDFLY_HOME/modules/com/liferay/portal/main
フォルダにmodule.xml
というファイルを作成します。 ファイル内で、portalモジュールとJDBC JARを宣言します。 -
$WILDFLY_HOME/standalone/configuration/standalone.xml
ファイルの<datasources>
要素内にデータソースを追加します。データベースのURL、ユーザー名、パスワードを適切な値に置き換えてください。
noteデータソース
jndi-name
を変更する必要がある場合は、<default-bindings>
タグ内のdatasource
要素を編集してください。 -
<datasources>
要素内にもあるstandalone.xml
ファイルの<drivers>
要素にドライバークラス名を追加します。MySQLを使用する最終的なデータソースサブシステムは次のようになります。
-
Liferay Homeフォルダの
portal-ext.properties
ファイルで、JNDiデータソースを指定します。 例えば、
これでデータソースが構成され、準備が整いました。
メールサーバーに接続する
データベース構成と同様に、メールを構成する最も簡単な方法は、DXPにメールセッションを処理させることです。 DXPの組み込みのメールセッションを使用する場合は、このセクションをスキップして、コントロールパネルでconfigure the mail sessionを行います。
WildFlyでメールセッションを管理する場合は、次の手順に従います。
-
次のように
$WILDFLY_HOME/standalone/configuration/standalone.xml
ファイルでメールサブシステムを指定します。 -
Liferay Homeの
portal-ext.properties
ファイルで、メールセッションを参照します。 例:
DXPのデプロイ
ROOT.war
のデプロイをトリガーするには、$WILDFLY_HOME/standalone/deployments/
フォルダにROOT.war.dodeploy
という名前の空のファイルを作成します。$WILDFLY_HOME/bin
に移動し、standalone.sh
を実行して WildFly アプリケーションサーバーを起動します。 WildFlyはROOT.war.dodeploy
ファイルを検出し、ファイルのプレフィックス(つまり、ROOT.war
)に一致するWebアプリケーションをデプロイします。
DXPのデプロイ後に、 PhaseOptimizer
を含む以下のような過剰な警告やログメッセージが表示される場合があります。 これらは良性なので、無視しても構いません。 これらのメッセージは、アプリサーバーのログレベルまたはログフィルターを調整することでオフにできます。
Liferay DXP Enterpriseサブスクリプションをお持ちの場合、DXPはアクティベーションキーを要求します。 詳細は、 Liferay DXPのアクティブ化 を参照してください。
DXPはWildFlyで実行されています。
次のステップ
管理者ユーザーとしてサインインして、DXPでソリューションの構築を開始できます。 または、Liferay DXPのその他のセットアップトピックを参照できます。