Tomcatに以前のバージョンのLiferayをインストールする
Liferay DXP 2025.Q2/Portal 2025.Q1 またはそれ以前
Liferay-Tomcat バンドル または Docker イメージ を使用することが、Liferay DXP の使用を開始する最も速い方法です。 この記事は、Tomcatアプリケーションサーバーの設定を完全に制御したいユーザーを対象としています。
先に進む前に、 Liferay-Tomcat バンドルのインストール および データベースの設定 の記事を確認してください。
Tomcatにインストールするには、DXP WARのインストール、依存関係のインストール、Tomcatの設定、およびDXPのデプロイが必要です。 データベースとメールサーバーの接続も設定する必要があります。
これを実現する最も単純で簡単な方法は、Liferay Liferay-Tomcatバンドルをダウンロードし、依存関係、スクリプト、およびROOT.xmlをそこから以下に説明する場所にコピーすることです。 それ以外の方法としては、依存関係をダウンロードして、Tomcatを手動で構成できます。
前提条件
Tomcatをどのように構成するかに関わらず、 ヘルプセンター (サブスクリプション)または Liferayコミュニティダウンロードからこれらのファイルをダウンロードしてインストールする必要があります。
- DXP WARファイル
- OSGi依存関係のZIPファイル
- 依存関係のZIPファイル(DXP 7.3以前)
Liferay DXP/Portal を実行するには、 サポートされている Java バージョン が必要です。 推奨設定については、 JVM構成 を参照してください。
Tomcat サーバーの親フォルダは Liferay Home です。 $TOMCAT_HOMEはTomcatサーバーフォルダを参照します。 通常は、tomcat-[version]またはapache-tomcat-[version]という名前です。
DXP WARのインストール
-
クリーンなTomcatのインストールを開始する場合は、
$CATALINA_BASE/webapps/ROOTフォルダのコンテンツを削除します。 これにより、デフォルトのTomcatホームページが削除されます。 -
DXP
.warファイルのコンテンツを$CATALINA_BASE/webapps/ROOTに展開します。
依存関係のインストール
DXPは、Liferay-Tomcatバンドルに含まれている多くのJARに依存しています。 バンドル内のJARの中には必須ではないファイルもありますが、有用なJARもあります。 Tomcat バンドルを使用していない場合は、ダウンロードした OSGi 依存関係 アーカイブと、以下に説明するサードパーティの JAR 依存関係を使用する必要があります。
-
OSGi依存関係のZIPファイルの内容を
[Liferay Home]/osgiフォルダーに解凍します(このフォルダーが存在しない場合は作成します)。 LiferayのOSGiランタイムは、これらのモジュールに依存しています。 -
DXP 7.4+ WARファイルには、MariaDBおよびPostgreSQLのドライバーが含まれています。 以前のWARにはそれらがありません。 7.4以降のWARに、使用中のサポートされているデータベースのドライバーがない場合は、データベースベンダーのJDBC JARファイルをダウンロードして、
$CATALINA_BASE/standalone/deployments/ROOT.war/WEB-INF/shielded-container-libフォルダーに配置します。サポートされているデータベースのリストについては、互換性マトリックスを参照してください。
HypersonicデータベースはDXPにバンドルされており、テスト目的に役立ちます。 本番環境のインスタンスには HSQL を使用しないでください。
DXP 7.3 以前のバージョンでは、Dependencies ZIP ファイルを $TOMCAT_HOME/lib/ext フォルダーに解凍します (このフォルダーが存在しない場合は作成してください)。 データベースベンダーのJDBC JARファイルもこのフォルダに入れてください。
Tomcatの設定
DXPを実行するためのTomcatの構成には、次のタスクが含まれます。
- JVMオプションの設定
- DXPのWebアプリケーションコンテキストを指定する
- プロパティと記述子の設定
-
setenv.bat、setenv.sh、startup.bat、startup.sh、shutdown.bat、およびshutdown.shファイルをDXPバンドルから$CATALINA_BASE/binフォルダにコピーします。 それ以外の場合は、setenv.batおよびsetenv.shスクリプトを作成します。 -
setenv.shスクリプトはCatalina用のJVMオプションを設定し、Tomcatのサーブレットコンテナになります。 これらのオプションの中にはJavaランタイム環境の場所が含まれます。 この環境がサーバーでグローバルに使用できない場合は、setenv.shスクリプトにその場所を設定して、Tomcatを実行できるようにします。JAVA_HOME環境変数がDXPがサポートするJREを指すようにして、これを行います。export JAVA_HOME=/usr/lib/jvm/java-8-jdk export PATH=$JAVA_HOME/bin:$PATH -
次に、DXPをサポートするようにCatalinaのJVMオプションを設定します。
CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Dlog4j2.formatMsgNoLookups=true -Duser.timezone=GMT -Xms2560m -Xmx2560m -XX:MaxNewSize=1536m -XX:MaxMetaspaceSize=768m -XX:MetaspaceSize=768m -XX:NewSize=1536m -XX:SurvivorRatio=7"
JVMオプションの説明
| オプション | 説明 |
|---|---|
-Dfile.encoding=UTF-8 | DXPにはUTF-8ファイルエンコーディングが必要です。 |
-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:SurvivorRatio | 新しいスペースとSurvivor領域の比率。 Survivor領域は、古い世代の領域に昇格する前に、若い世代のオブジェクトを保持します。 |
DXPのインストール後、これらの構成(これらのJVMオプションを含む)をさらに調整して、パフォーマンスを向上させることができます。 詳細については、 Liferay のチューニング および JVM のチューニング を参照してください。
引き続き、Tomcatの構成を行います。
-
Liferay-Tomcatバンドルがある場合は、その
$CATALINA_BASE/conf/Catalina/localhost/ROOT.xmlファイルをアプリケーションサーバーの対応する場所にコピーします。 ファイルパス(存在しない場合)とROOT.xmlファイルを作成します。ROOT.xmlファイルは、DXPのWebアプリケーションコンテキストを指定します。 例えば、<Context crossContext="true"> <JarScanner className="com.liferay.support.tomcat.util.scan.NOPJarScanner" /> <!-- JAAS --> <!--<Realm className="org.apache.catalina.realm.JAASRealm" appName="PortalRealm" userClassNames="com.liferay.portal.kernel.security.jaas.PortalPrincipal" roleClassNames="com.liferay.portal.kernel.security.jaas.PortalRole" />--> </Context>crossContext="true"を設定すると、複数の Web アプリケーションが同じクラス ローダーを使用できるようになります。 この構成には、JAAS領域を構成するためのコメント付きの指示とタグが含まれています。重要デフォルトの Liferay Portal の Web コンテキストは、XML ファイル名を変更することで変更できます (例:
localhost:8080/からlocalhost:8080/myportalへ)。ただし、これは推奨されません。 -
必ずUTF-8 URIエンコードを使用してください。
$CATALINA_BASE/conf/server.xmlファイルをTomcatバンドルからサーバーにコピーします。 そうでない場合は、$CATALINA_BASE/conf/server.xmlファイルを開き、URIEncoding="UTF-8"属性をredirectPort=8443を使用する HTTP および AJP コネクタに追加します。 以下は例です:旧:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />新:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />旧:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />新:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" /> -
$CATALINA_BASE/conf/server.xml内のアクセスログのValve要素をコメントアウトして、アクセスログの書き込みを控えます(オプション)。 以下ではコメントアウトされています。<!-- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> --> -
必要に応じて、
$CATALINA_HOME/conf/logging.propertiesファイルで次のログレベルを設定します。org.apache.catalina.startup.Catalina.level=INFO org.apache.catalina.startup.ClassLoaderFactory.level=SEVERE org.apache.catalina.startup.VersionLoggerListener.level=WARNING org.apache.level=WARNING -
DXP 7.3 以前の場合は、
$CATALINA_HOME/conf/web.xmlファイルを開き、JSP コンパイラを Java 8 に設定し、TagHandlerPoolクラスが JSP タグ プールを管理するように設定するには、jspサーブレット要素の<load-on-startup>要素の上に次の要素を追加します。<init-param> <param-name>compilerSourceVM</param-name> <param-value>1.8</param-value> </init-param> <init-param> <param-name>compilerTargetVM</param-name> <param-value>1.8</param-value> </init-param> <init-param> <param-name>tagpoolClassName</param-name> <param-value>com.liferay.support.tomcat.jasper.runtime.TagHandlerPool</param-value> </init-param> -
$CATALINA_HOME/conf/web.xmlで、アプリケーションサーバーがアプリケーションのJARやクラスの注釈などの追加のメタデータを検索するかどうかを指定します。web-app要素の属性metadata-complete="true"を設定すると、アプリケーション サーバーに追加のメタデータがないことが伝えられます。 この設定を使用すると、アプリケーションサーバーの起動が速くなります。 デフォルトでは、追加のメタデータをチェックします。 -
Unix、Linux、またはMac OSを使用している場合は、各フォルダで次のコマンドを実行して、
$CATALINA_HOME/binおよび$CATALINA_BASE/binフォルダのシェルスクリプトを実行可能にします。chmod a+x *.sh
LiferayのTomcatサポートJARは、DXP Webアプリケーションの一部です。 DXPはJARのファイルスキャナーを使用します。 DXPがJARファイルを使用するには、そのJARファイルが共通クラスローダーに存在している必要があります。 $CATALINA_BASE/conf/catalina.propertiesファイルを開き、次の値をcommon.loaderプロパティのコンマ区切り値リストの先頭に追加して、ファイルへのCatalinaアクセスを提供します。
"${catalina.home}/webapps/ROOT/WEB-INF/lib/support-tomcat.jar",
DXP 7.3以前の場合、common.loaderプロパティの値リストの先頭に次の値を追加して、$CATALINA_BASE/lib/extのJARへのCatalinaアクセスを提供します。
"${catalina.home}/lib/ext","${catalina.home}/lib/ext/*.jar",
チェックポイント:
- ファイルのエンコーディング、ユーザーのタイムゾーン、および優先プロトコルスタックが
setenv.shスクリプトに設定されている。 - デフォルトの使用可能メモリとメタスペース制限が設定されている。
$CATALINA_BASE/conf/Catalina/localhost/ROOT.xmlはWebアプリケーションコンテキストを宣言している。$CATALINA_BASE/conf/server.xmlは、UTF-8エンコーディングを設定している。$CATALINA_BASE/conf/server.xmlは、ホストアクセスログを書き込むための値を宣言していない。 (オプション)$CATALINA_HOME/conf/logging.propertiesは、必要なログレベルを設定している。$CATALINA_HOME/conf/web.xmlは、タグハンドラープールを設定し、Java 8をJSPコンパイラとして設定している。$CATALINA_HOME/conf/web.xmlは、アプリケーションサーバーが追加のメタデータを検索しないように指定している。 (オプション)- Tomcatの
binフォルダ内のスクリプトは実行可能である。 $CATALINA_BASE/conf/catalina.propertiesのcommon.loaderプロパティは、Catalinaに必要なJARへのアクセスを許可している。
アプリケーションサーバーは、DXPを実行するように設定されています。
データベース設定
DXPには組み込みのHypersonicデータベースが含まれています。これはデモンストレーション目的には最適ですが、本番環境では使用しないでください。 本番環境では、フル機能のサポートされているRDBMSを使用してください。 データベースの設定方法については、 データベースの設定 を参照してください。
Liferay DXPは、DXPに組み込まれているデータソースを使用する(推奨)か、アプリケーションサーバー上に作成したデータソースを使用してデータベースに接続できます。
DXP を初めて実行するときに、 セットアップ ウィザード を使用して、DXP の組み込みデータ ソースをデータベースで構成できます。 または、データベースの データベース テンプレート に基づいて、 portal-ext.properties ファイル でデータ ソースを構成することもできます。
それ以外の場合は、Tomcatでデータソースを設定できます。
Tomcatデータソースの設定
-
データベースサーバーがインストールされ、動作していることを確かめます。 別のマシンにインストールされている場合は、DXPマシンがアクセスできることを確認してください。
-
DXP WAR(7.4以降)またはデータベースベンダーからJDBC JARを取得し、
$TOMCAT_HOME/lib/extフォルダにコピーします。 -
$CATALINA_BASE/conf/Catalina/localhost/ROOT.xmlを開き、Webアプリケーションコンテキストでリソースとしてデータソースを追加します。<Context...> ... <Resource name="jdbc/LiferayPool" auth="Container" factory="com.zaxxer.hikari.HikariJNDIFactory" type="javax.sql.DataSource" minimumIdle="10" maxLifetime="0" maximumPoolSize="85" driverClassName="com.mysql.jdbc.Driver" dataSource.user="[place your user name here]" dataSource.password="[place your password here]" jdbcUrl="jdbc:mysql://localhost/lportal?characterEncoding=UTF8&dontTrackOpenResources=true&holdResultsOpenOverStatementClose=true&useFastDateParsing=false&useUnicode=true" /> </Context>データベースのURL、ユーザー名、パスワードを適切な値に置き換えてください。 Liferay はデフォルトでデータベース接続プールに Hikari CP を使用することに注意してください。
-
[Liferay_Home]の
portal-ext.propertiesファイルで、データソースを指定します。 例えば、jdbc.default.jndi.name=jdbc/LiferayPool
データソースが設定されました。
JNDI接続を使用している場合は、 TomcatでのJNDIの設定 を参照してください。
メール設定
メールを設定する最も簡単な方法は、DXP に組み込まれているメールセッション を使用することです。 組み込みのメールセッションを使用する場合は、このセクションをスキップしてください。
Tomcatを使用してメールセッションを管理する場合は、次の手順に従います。
-
$CATALINA_BASE/conf/Catalina/localhost/ROOT.xmlを開き、メールセッションをWebアプリケーションContextのResourceとして定義します。 サンプルのメールセッション値を自分のものに置き換えてください。<Context...> ... <Resource name="mail/MailSession" auth="Container" type="javax.mail.Session" mail.pop3.host="[place POP mail host here]" mail.pop3.port="110" mail.smtp.host="[place SMTP mail host here]" mail.smtp.port="465" mail.smtp.user="[place user name here]" mail.smtp.password="[place password here]" mail.smtp.auth="true" mail.smtp.starttls.enable="true" mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory" mail.imap.host="[place IMAP mail host here]" mail.imap.port="993" mail.transport.protocol="smtp" mail.store.protocol="imap" /> </Context> -
Liferay Homeの
portal-ext.propertiesファイルで、メールセッションを指定します。 例:mail.session.jndi.name=mail/MailSession
メールセッションはTomcatで設定されます。
DXPのデプロイ
$CATALINA_HOME/binに移動して./startup.shを実行し、Tomcatを起動します。 または、./catalina.sh runを実行して、DXPのログファイルを追跡します。 ログは起動アクティビティを監査し、デプロイのデバッグに役立ちます。
Liferay DXP Enterpriseサブスクリプションをお持ちの場合、DXPはアクティベーションキーを要求します。 詳細については、 Liferay DXP のアクティベーション を参照してください。
DXPはTomcatで実行されています。