JVM設定
Liferay DXP 2024.Q3+/Portal GA125+の時点では、Liferay DXP/Portal は特定の JVM オプション設定を備えた Java JDK 17 または 21 (以前のバージョンでは JDK 8 および 11 をサポート) を必要とします。 JDK 11、17、21に特化した推奨設定と、推奨されるベースラインメモリ設定も用意されています。 これらの設定についてはここで説明し、Tomcatスクリプトのサンプルで示します。
JDKを選択するには、 互換性マトリクス を参照してください。
推奨されるJVM設定
| 種類 | 設定/デフォルト | 必須 | 説明 |
|---|---|---|---|
| ファイルのエンコーディング | -Dfile.encoding=UTF8 | はい | DXPでは、国際化をサポートするためにUTF-8ファイルエンコーディングが必要です。 |
| タイムゾーン | -Duser.timezone=GMT | はい | DXPは、すべての日付にGMTタイムゾーンを使用します。 |
| ヒープサイズ | -Xms2560m -Xmx2560m | いいえ | デフォルトの最小サイズと最大サイズは必要に応じて調整できますが、JVM が動的に調整するのを防ぐために、同じ最小サイズ (-Xms) と最大サイズ (-Xmx) を設定する必要があります。 |
| Log4j | -Dlog4j2.formatMsgNoLookups=true | はい* | Log4jのバージョン2.15.0より前のバージョンには、LDAP JNDIパーサーを介したリモートコード実行(RCE)の脆弱性が存在します。 詳細は LPS-143663 を参照してください。 *Liferay DXP 7.4 GA1 および Liferay PORTAL 7.4 GA1 - GA3 では、セキュリティ脆弱性を解決するためにこの設定が必要です。 |
サポートされているアプリケーションサーバーのLiferayインストールの記事では、これらの設定を適用する場所が説明されています。 記事のリンクは次の通りです。
既知の問題:不正アクセスの警告
JDK 11、17、または21では、アプリケーションサーバーにLiferayを手動でインストールしている場合、 不正アクセス のような警告がログに出力されることがあります。
これらの警告は既知の問題(LPS-87421)が原因で発生しており、以下のJVMオプションを追加することで解決できます。
--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
Tomcatスクリプトの例
以下は、上記のJVMオプションの一部を示すTomcat setenv.shスクリプトです。
CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Duser.timezone=GMT -Xms2560m -Xmx2560m -XX:MaxNewSize=1536m -XX:MaxMetaspaceSize=768m -XX:MetaspaceSize=768m -XX:NewSize=1536m -XX:SurvivorRatio=7"
CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.base/java.io=ALL-UNNAMED"
CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.base/java.lang.reflect=ALL-UNNAMED"
Liferayは多くのアプリケーションサーバーをサポートしており、それらはすべて、選択したJVMオプションで構成することができます。