Documentation

TomcatへのDXPのインストール

重要

Tomcatバンドル または Dockerイメージ を使用することが、Liferay DXPの使用を開始する最も早い方法です。 この記事は、Tomcatアプリケーションサーバーの設定を完全に制御したいユーザーを対象としています。

続行する前に、 Installing a Liferay DXP Tomcat Bundle および データベースの構成 の記事を確認してください。

TomcatにLiferay DXPをインストールするには、DXP WARファイルをデプロイし、DXPの依存関係をデプロイし、DXP用にTomcatを構成する必要があります。

これを実現する最も単純で簡単な方法は、Liferayによって作成されたLiferay DXP Tomcatバンドルをダウンロードし、そこで提供されている依存関係、スクリプト、およびROOT.xmlをコピーすることです。 依存関係をダウンロードし、Tomcatスクリプトと構成を手動で作成/変更することもできます。

依存関係、スクリプト、および構成をLiferay Tomcatバンドルファイルからコピーする(または手動でダウンロードして構成する)ことに加えて、 ヘルプセンター (サブスクリプション)またはLiferayLiferayコミュニティダウンロードから次のファイルをダウンロードする必要があります。

  • DXP WARファイル

  • 依存関係のZIPファイル

  • OSGi依存関係のZIPファイル

Liferay DXPには Java JDK 8または11 が必要です。 JDKをインストールするには、 www.java.com を参照してください。

注釈

Liferay DXP互換性マトリックス には、サポートされているデータベースと環境が明記されています。

以下はTomcatにDXPをインストールするための基本的な手順です。

  1. 依存ファイルをインストールする

  2. Tomcatを構成する

  3. データベース設定

  4. メール設定

  5. DXP WARをデプロイする

Tomcatサーバーの親フォルダはLiferay Homeです。 $TOMCAT_HOMEはTomcatサーバーフォルダを参照します。 通常は、tomcat-[version]またはapache-tomcat-[version]という名前です。

依存ファイルをインストールする

DXPは、DXP Tomcatバンドルに含まれている多くのJARに依存しています。 バンドル内のJARの中には必須ではないファイルもありますが、有用なJARもあります。 Tomcatバンドルを使用していない場合は、以下で説明するように、ダウンロードした 依存関係 アーカイブおよび OSGi依存関係 アーカイブ内のLiferay JAR、およびサードパーティのJARを使用してください。

  1. 依存関係ZIPファイルのコンテンツを$TOMCAT_HOME/lib/extフォルダに解凍します(このフォルダが存在しない場合は作成します)。

  2. OSGi依存関係ZIPファイルのコンテンツをLiferay_Home/osgiフォルダに解凍します(このフォルダが存在しない場合は作成します)。

DXPはJDBCを介してデータベースと通信します。 データベースJDBCドライバーのJARファイルをユーザードメインのlibフォルダに追加します。 次のデータベース用のJDBCドライバーのJARをダウンロードできます。

HypersonicデータベースはDXPにバンドルされており、テスト目的で役立ちます。 本番環境用のDXPインスタンスにはHSQLを使用 しない でください。

Tomcatを構成する

DXPを実行するためのTomcatの構成には、次のものが含まれます。

  • 環境変数を設定する

  • DXPのWebアプリケーションコンテキストを指定する

  • プロパティと記述子を設定する

手順は次のとおりです。

  1. setenv.batsetenv.shstartup.batstartup.shshutdown.bat、およびshutdown.shファイルをDXPバンドルから$CATALINA_BASE/binフォルダにコピーします。 それ以外の場合は、setenv.batおよびsetenv.shスクリプトを作成します。

    これらのスクリプトはCatalina用のJVMオプションを設定し、Tomcatのサーブレットコンテナになります。 これらのオプションの中にはJavaランタイム環境の場所が含まれます。 この環境がサーバーでグローバルに使用できない場合は、これらのファイルに場所を設定して、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 -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false -Duser.timezone=GMT -Xms2560m -Xmx2560m -XX:MaxMetaspaceSize=512m"
    

    次のことが行われます。

    1. ファイルのエンコーディングをUTF-8に設定します。

    2. IPv6よりもIPv4スタックを優先します。

    3. Tomcatが静的フィールドまたは最終フィールドに関連するガベージコレクションのバグを回避できないようにします(これらのバグはDXPには存在せず、それらを回避するとロギングシステムで問題が発生します)。

    4. タイムゾーンをGMTに設定します

    5. JVMに2GBのRAMを割り当てます

    6. メタスペースを512MBに制限します。

    重要

    DXPでは、アプリケーションサーバーのJVMがGMTタイムゾーンとUTF-8ファイルエンコーディングを使用する必要があります。

    注釈

    JDK 11では、次のJVM引数を追加して4桁の年を表示することをお勧めします:-Djava.locale.providers=JRE,COMPAT,CLDR

    インストール後、これらの構成(これらのJVMオプションを含む)をさらに調整して、パフォーマンスを向上させることができます。

  2. DXP Tomcatバンドルがある場合は、その$CATALINA_BASE/conf/Catalina/localhost/ROOT.xmlファイルをアプリケーションサーバーの対応する場所にコピーします。 ファイルパス(存在しない場合)とROOT.xmlファイルを作成します。

    ROOT.xmlファイルは、DXPのWebアプリケーションコンテキストを次のように指定します。

    <Context crossContext="true" path="">
    
        <!-- 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"
        />-->
    
        <!--
        Uncomment the following to disable persistent sessions across reboots.
        -->
    
        <!--<Manager pathname="" />-->
    
        <!--
        Uncomment the following to not use sessions. See the property
        "session.disabled" in portal.properties.
        -->
    
        <!--<Manager className="com.liferay.support.tomcat.session.SessionLessManagerBase" />-->
    
        <Resources>
            <PreResources
                base="${catalina.base}/lib/ext/portal"
                className="com.liferay.support.tomcat.webresources.ExtResourceSet"
                webAppMount="/WEB-INF/lib"
            />
        </Resources>
    </Context>
    

    crossContext="true"を設定すると、複数のWebアプリケーションで同じクラスローダーを使用できます。 この設定には、JAAS領域の設定、永続するセッションの無効化、セッションの完全な無効化のためのコメント付きの説明とタグが含まれています。

  3. $CATALINA_BASE/conf/catalina.propertiesファイルを開いて、次の値をcommon.loaderプロパティに追加することで、$CATALINA_BASE/lib/ext内のJARへのCatalinaによるアクセスを提供します。

    ,"${catalina.home}/lib/ext/global","${catalina.home}/lib/ext/global/*.jar","${catalina.home}/lib/ext","${catalina.home}/lib/ext/*.jar"
    
  4. 必ずUTF-8 URIエンコードを使用してください。 $CATALINA_BASE/conf/server.xmlファイルをTomcatバンドルからサーバーにコピーします。 それ以外の場合は、$CATALINA_BASE/conf/server.xmlファイルを開き、属性URIEncoding="UTF-8"をHTTPおよびredirectPort=8443を使用する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" />
    
  5. $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 &quot;%r&quot; %s %b" /> -->
    
  6. 必要に応じて、$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
    
  7. $CATALINA_HOME/conf/web.xmlで、JSPコンパイラをJava 8に設定し、DXPの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>
    
  8. $CATALINA_HOME/conf/web.xmlで、アプリケーションサーバーがアプリケーションのJARやクラスの注釈などの追加のメタデータを検索するかどうかを指定します。 web-app要素の属性metadata-complete="true"を設定すると、追加のメタデータはないことがアプリケーションサーバーに通知されます。 この設定により、アプリケーションサーバーの起動パフォーマンスが向上します。 デフォルトでは、追加のメタデータをチェックします。

  9. Unix、Linux、またはMac OSを使用している場合は、各フォルダーで次のコマンドを実行して、$CATALINA_HOME/binおよび$CATALINA_BASE/binフォルダのシェルスクリプトを実行可能にします。

    chmod a+x *.sh
    

チェックポイント:

  1. ファイルのエンコーディング、ユーザーのタイムゾーン、および優先プロトコルスタックがsetenv.shに設定されている。

  2. デフォルトの使用可能メモリとメタスペース制限が設定されている。

  3. $CATALINA_BASE/conf/Catalina/localhost/ROOT.xmlはWebアプリケーションコンテキストを宣言している。

  4. $CATALINA_BASE/conf/catalina.propertiescommon.loaderプロパティは、Catalinaに$CATALINA_BASE/lib/ext内のJARへのアクセスを許可している。

  5. $CATALINA_BASE/conf/server.xmlは、UTF-8エンコーディングを設定している。

  6. $CATALINA_BASE/conf/server.xmlは、ホストアクセスログを書き込むためのバルブを宣言していない。 (オプション

  7. $CATALINA_HOME/conf/logging.propertiesは、必要なログレベルを設定している。

  8. $CATALINA_HOME/conf/web.xmlは、タグハンドラープールを設定し、Java 8をJSPコンパイラとして設定している。

  9. $CATALINA_HOME/conf/web.xmlは、アプリケーションサーバーが追加のメタデータを検索しないように指定している。 (オプション

  10. Tomcatのbinフォルダ内のスクリプトは実行可能である。

アプリケーションサーバーは、DXPを実行するように設定されています。

データベース設定

DXPには組み込みのHypersonicデータベースが含まれています。これはデモンストレーション目的には最適ですが、 本番環境では使用しないでください 。 本番環境では、フル機能のサポートされているRDBMSを使用してください。 データベースのセットアップについては、Configure a Databaseを参照してください。

Liferay DXPは、DXPに組み込まれているデータソースを使用する(推奨)か、アプリケーションサーバー上に作成したデータソースを使用してデータベースに接続できます。

初めてDXPを実行するときにDXPの組み込みデータソースをデータベースで設定するには、セットアップウィザードを使用できます。 または、お使いのデータベースのデータベーステンプレートに基づいて、portal-ext.propertiesファイルでデータソースを設定できます。

それ以外の場合は、Tomcatでデータソースを設定できます。

Tomcatデータソースの設定

  1. データベースサーバーがインストールされ、動作していることを確かめます。 別のマシンにインストールされている場合は、DXPマシンがアクセスできることを確認してください。

  2. $CATALINA_BASE/conf/Catalina/localhost/ROOT.xmlを開き、WebアプリケーションContextResourceとしてデータソースを追加します。

    <Context...>
        ...
        <Resource
            name="jdbc/LiferayPool"
            auth="Container"
            type="javax.sql.DataSource"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost/lportal?useUnicode=true&amp;characterEncoding=UTF-8"
            username="root"
            password="root"
            maxTotal="100"
            maxIdle="30"
            maxWaitMillis="10000"
        />
    </Context>
    

    上記のリソース定義の例は、パスワードがrootであるrootという名前のユーザーがいるlportalという名前のMySQLデータベース用です。 これらの値を自分のものに置き換えてください。

  3. **[Liferay_Home**] のportal-ext.propertiesファイルで、データソースを指定します。

    jdbc.default.jndi.name=jdbc/LiferayPool
    

データソースが設定されました。

メール設定

メールを設定する最も簡単な方法は、DXPに組み込みのメールセッションを使用することです。 組み込みのメールセッションを使用する場合は、このセクションをスキップできます。

Tomcatを使用してメールセッションを管理する場合は、次の手順に従います。

  1. $CATALINA_BASE/conf/Catalina/localhost/ROOT.xmlを開き、メールセッションをWebアプリケーションContextResourceとして開きます。 サンプルのメールセッション値を自分のものに置き換えてください。

    <Context...>
        ...
        <Resource
            name="mail/MailSession"
            auth="Container"
            type="javax.mail.Session"
            mail.pop3.host="pop.gmail.com"
            mail.pop3.port="110"
            mail.smtp.host="smtp.gmail.com"
            mail.smtp.port="465"
            mail.smtp.user="user"
            mail.smtp.password="password"
            mail.smtp.auth="true"
            mail.smtp.starttls.enable="true"
            mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
            mail.imap.host="imap.gmail.com"
            mail.imap.port="993"
            mail.transport.protocol="smtp"
            mail.store.protocol="imap"
        />
    </Context>
    
  2. Liferay Homeのportal-ext.propertiesファイルに、メールセッションの値を入力します。

    mail.session.jndi.name=mail/MailSession
    

Tomcatのメールセッションが設定されました。

DXPのデプロイ

  1. クリーンなTomcatサーバーに手動インストールする場合は、$CATALINA_BASE/webapps/ROOTフォルダのコンテンツを削除します。 これにより、デフォルトのTomcatホームページが削除されます。

  2. DXP .warファイルのコンテンツを$CATALINA_BASE/webapps/ROOTに展開します。

  3. $CATALINA_HOME/binに移動して./startup.shを実行し、Tomcatを起動します。 または、./catalina.sh runを実行して、DXPのログファイルを追跡します。 ログは起動アクティビティを監査し、デプロイのデバッグに役立ちます。

DXPはTomcatで実行されています。