JBoss EAPに以前のバージョンのLiferayをインストールする
Liferay DXP 2025.Q2/Portal 2025.Q1 またはそれ以前
JBoss EAPにインストールするには、DXP WARのインストール、依存関係のインストール、JBossの設定、およびJBossへのDXPのデプロイが必要です。 データベースとメールサーバーの接続も設定する必要があります。
前提条件
Liferay DXP/Portal を実行するには、 サポートされている Java バージョン が必要です。 詳細については、 JVM 構成 を参照してください。
これらのファイルは、 ヘルプセンター (サブスクリプション) または Liferay コミュニティ ダウンロード からダウンロードしてください。
- DXP WARファイル
- OSGi依存関係のZIPファイル
- 依存関係のZIPファイル(DXP 7.3以前)
インストール手順では、これらの用語を使用しています。
[Liferay Home]: JBossサーバーフォルダを含むフォルダ( $JBOSS_HOME と呼ばれます)。 DXPをインストールしてデプロイした後、data、deploy、およびlogsフォルダを生成します。
$JBOSS_HOME:JBossサーバーフォルダー。 通常、jboss-eap-[version]という名前です。
DXP WARのインストール
-
クリーンなJBossインストールを開始していて、
$JBOSS_HOME/standalone/deployments/ROOT.warフォルダが存在する場合は、そのすべてのサブフォルダとファイルを削除します。 -
DXP WARファイルを
$JBOSS_HOME/standalone/deployments/ROOT.warフォルダに解凍します(このフォルダが存在しない場合は作成します)。
デフォルトの Liferay Portal の Web コンテキストは、WAR ファイル名を変更することで変更できます (例: localhost:8080/ から localhost:8080/myportal)。ただし、これは推奨されません。
依存関係のインストール
OSGi Dependencies ZIPファイルを[Liferay Home]/osgiフォルダーに解凍します(このフォルダーが存在しない場合は作成します)。 LiferayのOSGiランタイムは、これらのモジュールに依存しています。
JBossのグローバルクラスパスの場所を使用して依存関係をインストールする
DXP 7.3以前の場合は、次の追加手順に従います。
-
依存関係のZIPファイルを
$JBOSS_HOME/modules/com/liferay/portal/mainフォルダに解凍します(このフォルダが存在しない場合は作成します)。 -
$JBOSS_HOME/modules/com/liferay/portal/mainフォルダにmodule.xmlというファイルを作成します。 ファイルで、ポータルモジュールとそれに必要なすべてのリソースと依存関係を宣言します。<?xml version="1.0"?> <module xmlns="urn:jboss:module:1.0" name="com.liferay.portal"> <resources> <resource-root path="[place a Liferay dependencies ZIP JAR file name here]" /> <!-- Add a resource-root element for each Liferay dependencies ZIP JAR --> </resources> <dependencies> <module name="javax.api" /> <module name="javax.mail.api" /> <module name="javax.servlet.api" /> <module name="javax.servlet.jsp.api" /> <module name="javax.transaction.api" /> </dependencies> </module>[place your database vendor's JAR file name here]をデータベースのドライバーJARに置き換えます。Liferay依存関係ZIPのJARごとに、
path属性がJAR名に設定されたresource-root要素を追加します。 たとえば、com.liferay.petra.concurrent.jarファイルに次のようなresource-root要素を追加します。<resource-root path="com.liferay.petra.concurrent.jar" />
スタンドアロンモードとドメインモードのJBoss EAPでのDXPの実行
JBoss EAP は、 スタンドアロン モードまたは ドメイン モードのいずれでも起動できます。 ドメインモードでは、単一のコントロールポイントから複数のアプリケーションサーバーインスタンスを管理できます。 このようなアプリケーションサーバーのコレクションは、 ドメインと呼ばれます。 スタンドアロンモードとドメインモードの詳細については、 JBoss EAP 製品ドキュメント のこのトピックのセクションを参照してください。
DXPは、スタンドアロンモードで実行する場合はJBoss EAPをサポートしますが、ドメインモードで実行する場合はサポートしません。 JBossはファイル(展開または非展開)をコピーして管理対象デプロイメントのコンテンツを管理するため、DXPの自動展開は管理対象デプロイメントでは機能しません。 これにより、JSPフックとExtプラグインが意図したとおりに機能しなくなります。 たとえば、DXPのJSPオーバーライドメカニズムはアプリケーションサーバーに依存しているため、JSPフックは管理対象ドメインモードで実行されているJBoss EAPでは機能しません。 ただし、JSPフックとExtプラグインは非推奨であるため、使用していない可能性があります。
ドメインモードデプロイメントを使用する場合は、コマンドラインインターフェースを使用します。
これにより、DXPが複数のJBossサーバー上のクラスター環境で実行されるのを防ぐことはできません。 スタンドアロンモードで実行されているJBoss EAPサーバーで実行されているDXPインスタンスのクラスターを設定できます。 詳細については、 クラスタリングに関する記事 を参照してください。
JBossの構成
JBossの構成手順は次のとおりです。
- 環境変数を設定する
- プロパティと記述子を指定する
- 不要な構成を削除する
$JBOSS_HOME/standalone/configuration/standalone.xmlに次の変更を加えます。
-
閉じタグ
</extensions>を探します。 その終了タグの直下に、まだ存在していなければ、以下のシステムプロパティを挿入します。<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>
チェックポイント:
続行する前に、次のプロパティが standalone.xml ファイルに設定されていることを確認してください。
- 新しい
<system-property>が追加されました。 - 新しい
<filter-spec>が追加されました。 <deployment-timeout>は600に設定されています。- ウェルカムコンテンツが無効になっていること。
次に、JVMと起動スクリプトを構成します。
$JBOSS_HOME/ bin / フォルダーで、スタンドアロンドメインの構成スクリプトファイル standalone.conf を変更します。
- ファイルのエンコーディングを
UTF-8に設定します。 - ユーザーのタイムゾーンを
GMTに設定します。 - 優先プロトコルスタックを設定します。
- 利用可能なデフォルトのメモリ容量を増やします。
DXP では、アプリケーション サーバーの JVM が GMT タイム ゾーンと UTF-8 ファイル エンコーディングを使用することが求められます。
standalone.confスクリプトを次のように編集します。
-
if [ "x$JAVA_OPTS" = "x" ];ステートメントの下で、JAVA_OPTS代入から JVM サイジング オプションを削除します。 例えば、以下のものをJAVA_OPTS="-Xms1303m -Xmx1303m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=2560m -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 | JBossの起動に失敗した場合に再試行するためのタイムアウトを設定します。 |
-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 のチューニング を参照してください。
IBM JDKの使用
JBossサーバーでIBM JDKを使用する場合は、以下の追加手順を実行します。
-
DXP 7.3 以前の場合、
$JBOSS_HOME/modules/com/liferay/portal/main/module.xmlファイルに移動して、この依存関係を<dependencies>要素内に挿入してください。<module name="ibm.jdk" /> -
$JBOSS_HOME/modules/system/layers/base/sun/jdk/main/module.xmlファイルに移動し、以下のパスを<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" />
追加されたパスは、ポータルのデプロイメントの例外と画像のアップロードの問題を解決します。
Liferayにおけるデータソースの設定
DXPには組み込みのHypersonicデータベースが含まれています。これはデモンストレーション目的には最適ですが、本番環境では使用しないでください。 本番環境では、フル機能のサポートされているRDBMSを使用してください。 データベースの設定方法については、 データベースの設定 を参照してください。
Liferay DXPは、DXPに組み込まれているデータソースを使用する(推奨)か、アプリケーションサーバー上に作成したデータソースを使用してデータベースに接続できます。
DXP を初めて実行するときに、 セットアップ ウィザード を使用して、DXP の組み込みデータ ソースをデータベースで構成できます。 または、データベースの portal-ext.properties ファイル で、データベースの データベース テンプレート に基づいてデータ ソースを構成することもできます。
JBoss EAPにおけるデータソースの設定
JBossを使用してデータソースを管理する場合は、次の手順に従います。
-
DXP 7.4+ WARファイルには、MariaDBおよびPostgreSQLのドライバーが含まれています。 以前のWARにはそれらがありません。 7.4以降のWARに、使用中のサポートされているデータベースのドライバーがない場合は、データベースベンダーのJDBC JARファイルをダウンロードして、$JBOSS_HOME/standalone/deployments/ROOT.war/WEB-INF/shielded-container-libフォルダーに配置します。 これは、JBoss上のLiferayのみに必要な依存関係を追加するための推奨される方法です。 あるいは、JBossのグローバル・クラスパス・ロケーションを使用して依存関係をインストールすることもできます。
サポートされているデータベースのリストについては、互換性マトリックスを参照してください。
注
DXPには、テスト目的に役立つHypersonicデータベースが含まれています。 本番インスタンスにはHSQLを使用しないでください。
-
まだ作成していない場合は、 module.xml という名前のファイルを $JBOSS_HOME/modules/com/liferay/portal/main フォルダーに作成してください。 ファイル内で、ポータルモジュールとその必要な依存関係をすべて宣言します。
<?xml version="1.0"?>
<module xmlns="urn:jboss:module:1.0" name="com.liferay.portal">
<dependencies>
<module name="javax.api" />
<module name="javax.mail.api" />
<module name="javax.servlet.api" />
<module name="javax.servlet.jsp.api" />
<module name="javax.transaction.api" />
</dependencies>
</module>
-
DXP WAR(7.4以降)またはデータベースベンダーからJDBC JARを取得し、$JBOSS_HOME/modules/com/liferay/portal/mainフォルダにコピーします。
-
$JBOSS_HOME/modules/com/liferay/portal/mainフォルダのmodule.xml を更新して portal モジュールと JDBC JAR を宣言します。
<resources>
<resource-root path="[place your database vendor's JAR file name here]" />
</resources>
-
$JBOSS_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 the driver name here]</driver>
<security>
<user-name>[place your user name here]</user-name>
<password>[place your password here]</password>
</security>
</datasource>
データベースのURL、ユーザー名、パスワードを適切な値に置き換えてください。
注
データ ソース jndi-name を変更する必要がある場合は、 <default-bindings> タグ内の datasource 要素を編集します。
-
standalone.xml ファイルの <drivers> 要素にドライバーを追加します。この要素は <datasources> 要素内にもあります。
<drivers>
<driver name="[name of driver must match name above]" module="com.liferay.portal">
<driver-class>[place your JDBC driver class here]</driver-class>
</driver>
</drivers>
MySQLを使用する最終的なデータソースサブシステムは次のようになります。
<subsystem xmlns="urn:jboss:domain:datasources:5.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 ファイルで、データ ソースを指定します。 例えば、
jdbc.default.jndi.name=java:jboss/datasources/ExampleDS
これで、データソースが構成され、データベースに接続する準備ができました。
メールサーバーに接続する
データベース構成と同様に、構成するのが最も簡単なメールセッションはDXPです。 DXPの組み込みのメールセッションを使用する場合は、このセクションをスキップして、コントロールパネルのメールサーバーに接続してください。
JBossでメールセッションを設定する場合は、以下の手順に従ってください。
-
$JBOSS_HOME/standalone/configuration/standalone.xml ファイルで、メールサブシステムを次のように指定します。
<subsystem xmlns="urn:jboss:domain:mail:3.0">
<mail-session jndi-name="java:jboss/mail/MailSession" >
<smtp-server ssl="true" outbound-socket-binding-ref="mail-smtp">
<login username="[place user name here]" password="[place password here]"/>
</smtp-server>
</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 mail host here]" port="[place mail port here]"/>
</outbound-socket-binding>
</socket-binding-group>
-
Liferay Home の portal-ext.properties ファイルで、メール セッションを参照します。 例えば、
mail.session.jndi.name=java:jboss/mail/MailSession
DXPのデプロイ
-
ROOT.warデプロイメントをトリガーするには、 $JBOSS_HOME/ standalone/deployments / フォルダーに ROOT.war.dodeploy という名前の空のファイルを作成します。
-
$JBOSS_HOME/bin に移動し、 standalone.shを実行して JBoss アプリケーションサーバーを起動します。 JBoss は 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 のアクティベーション を参照してください。
これで、 DXPはJBoss EAPで実行されています。