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をインストールしてデプロイした後、datadeploy、およびlogsフォルダを生成します。

$WILDFLY_HOME:WildFlyサーバーフォルダー。 通常、wildfly-[version]という名前です。

DXP WARのインストール

  1. クリーンなWildflyインストールを開始していて、$WILDFLY_HOME/standalone/deployments/ROOT.warフォルダが存在する場合は、そのすべてのサブフォルダとファイルを削除します。
  2. DXP WARファイルを$WILDFLY_HOME/standalone/deployments/ROOT.warフォルダに解凍します(このフォルダが存在しない場合は作成します)。

依存関係のインストール

  1. OSGi Dependencies ZIPファイルを [Liferay Home]/osgi フォルダーに解凍します(このフォルダーが存在しない場合は作成します)。 LiferayのOSGiランタイムは、これらのモジュールに依存しています。

  2. DXP 7.4+ WARファイルには、MariaDBおよびPostgreSQLのドライバーが含まれています。 以前のWARにはそれらがありません。 7.4以降のWARに、使用中のサポートされているデータベースのドライバーがない場合は、データベースベンダーのJDBC JARファイルをダウンロードして、$WILDFLY_HOME/standalone/deployments/ROOT.war/WEB-INF/shielded-container-libフォルダーに配置します。

    サポートされているデータベースの一覧については、 互換性マトリックス を参照してください。

note

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

以前のバージョンの依存関係をインストールする

DXP 7.3以前の場合は、次の追加手順に従います。

  1. 依存関係のZIPファイルを$WILDFLY_HOME/modules/com/liferay/portal/mainフォルダに解凍します(このフォルダが存在しない場合は作成します)。

  2. $WILDFLY_HOME/modules/com/liferay/portal/mainフォルダにmodule.xmlというファイルを作成します。 このファイルでは、データベースベンダーの JAR ファイル、ポータルモジュール、およびその必要なリソースや依存関係のすべてにパスを設定した resource-root 要素を宣言します。

    <?xml version="1.0"?>
    
    <module xmlns="urn:jboss:module:1.0" name="com.liferay.portal">
        <resources>
            <resource-root path="[place your database vendor's JAR file name here]" />
            <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に置き換えます。

    依存関係ZIPのJARごとに、path属性がJAR名に設定されたresource-root要素を追加します。 たとえば、com.liferay.petra.concurrent.jarファイルに次のようなresource-root要素を追加します。

    <resource-root path="com.liferay.petra.concurrent.jar" />
    

チェックポイント:

  1. OSGiの依存関係は、 [Liferay Home]/osgi フォルダに解凍されています。
  2. データベースベンダーのJDBCドライバーがインストールされています。
  3. module.xml<resource-root> 要素内のすべての JAR をリストしています。

WildFlyでのスタンドアロンモードとドメインモードのDXPの実行

WildFlyは、 スタンドアロン モードまたは ドメイン モードのいずれかで起動できます。 ドメインモードでは、単一のコントロールポイントから複数のアプリケーションサーバーインスタンスを管理できます。 このようなアプリケーションサーバーのコレクションは、 ドメイン と呼ばれます。 スタンドアロンモードとドメインモードの詳細は、 WildFly管理ガイド このトピックに関するセクションを参照してください。 DXPは、スタンドアロンモードではWildFlyを完全にサポートしますが、ドメインモードではサポートしません。

DXPは、スタンドアロンモードで実行する場合はWildFlyをサポートしますが、ドメインモードで実行する場合はサポートしません。 WildFlyはファイル(展開または非展開)をコピーして管理対象デプロイメントのコンテンツを管理するため、DXPの自動展開は管理対象デプロイメントでは機能しません。 これにより、JSPフックとExtプラグインが意図したとおりに機能しなくなります。 たとえば、DXPのJSPオーバーライドメカニズムはアプリケーションサーバーに依存しているため、JSPフックは管理対象ドメインモードで実行されているWildFlyでは機能しません。 ただし、JSPフックとExtプラグインは非推奨であるため、使用していない可能性があります。

ドメインモードデプロイメントを使用する場合は、コマンドラインインターフェースを使用します。

note

これにより、DXPが複数のWildFlyサーバー上のクラスター環境で実行されるのを防ぐことはできません。 スタンドアロンモードで実行されていてWildFlyサーバーで実行されているDXPインスタンスのクラスターを設定できます。 詳細については、クラスタリングの記事 を参照してください。

WildFlyの構成

WildFlyがDXPを実行するように構成するには、次のものが含まれます。

  • 環境変数の設定
  • プロパティと記述子の設定
  • 不要な構成を削除する

$WILDFLY_HOME/standalone/configuration/standalone.xmlに以下の変更を加えます。

  1. JSPにJava 8 VM互換を使用するようにサーブレットコンテナを設定します。 デフォルトサーブレットコンテナを<servlet-container name="default">``<subsystem xmlns="urn:jboss:domain:undertow:12.0" ...要素で探し出します。 サーブレットコンテナの <jsp-config> 要素に、 developmentsource-vmtarget-vm 属性を以下のように設定します。

    <jsp-config development="true" source-vm="1.8" target-vm="1.8" />
    
  2. 終了 </extensions> タグを <server>sの中から見つけます。 その終了タグの直下に、まだ存在していなければ、以下のシステムプロパティを挿入します。

    <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>
    
  3. ログから WFLYSRV0059WFLYEE0007 のメッセージを除外します。 <subsystem xmlns="urn:jboss:domain:logging:8.0"> 要素の <console-handler> タグの中に、<level name="INFO"/>タグの直下に次の<filter-spec>タグを追加します。

    <filter-spec value="not(any(match(&quot;WFLYSRV0059&quot;),match(&quot;WFLYEE0007&quot;)))" />
    
  4. 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}"/>
    
  5. LiferayのJAASセキュリティドメインを <subsystem xmlns="urn:jboss:domain:security:2.0"><security-domains> 要素に追加します。 追加するドメインコードは以下の通りです。

    <security-domain name="PortalRealm">
        <authentication>
            <login-module code="com.liferay.portal.security.jaas.PortalLoginModule" flag="required" />
        </authentication>
    </security-domain>
    
  6. <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 ファイルに設定されていることを確認してください。

  1. 新しい <system-property> が追加されます。
  2. 新しい <filter-spec> が追加されていること。
  3. <deployment-timeout>600に設定されていること。
  4. 新しい <security-domain> が作成されていること。
  5. ウェルカムコンテンツが無効になっていること。

次に、JVMと起動スクリプトを構成します。

$WILDFLY_HOME/ bin / フォルダーで、スタンドアロンドメインの構成スクリプトファイル standalone.conf を開きます。

  • ファイルのエンコーディングを UTF-8に設定します。
  • ユーザーのタイムゾーンを GMTに設定します。
  • 優先プロトコルスタックを設定します。
  • 利用可能なデフォルトのメモリ容量を増やします。
important

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

standalone.confスクリプトを次のように編集します。

  1. if [ "x$JAVA_OPTS" = "x" ]; ステートメントの下で、 JAVA_OPTS の割り当てからJVMサイジングオプションを削除します。 例えば、以下のものを

    JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true"
    

    以下のものと置き換えます。

    JAVA_OPTS="-Djava.net.preferIPv4Stack=true"
    
  2. 次のJavaオプションの設定をファイルの最後に追加します。

    JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Djava.locale.providers=JRE,COMPAT,CLDR -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"
    

Javaオプションとメモリ引数について以下に説明します。

JVMオプションの説明

オプション説明
-Dfile.encoding=UTF-8DXPにはUTF-8ファイルエンコーディングが必要です。
-Djava.locale.providers=JRE,COMPAT,CLDRこれは、JDK 11で4桁の日付を表示するために必要です。
-Djava.net.preferIPv4Stack=trueIPv6よりもIPv4スタックを優先します。
-Dlog4j2.formatMsgNoLookups=trueリモートコード実行(RCE)の脆弱性を解決します。 詳細は、 LPS-143663 を参照してください。
-Duser.timezone=GMTDXPでは、アプリケーションサーバーのJVMがGMTタイムゾーンを使用する必要があります。

メモリ引数の説明

メモリ引数説明
-Xmsヒープの初期スペース。
-Xmxヒープの最大スペース。
-XX:NewSize最初の新しいスペース。 通常、新しいサイズをヒープ全体の半分に設定すると、より小さな新しいサイズを使用するよりもパフォーマンスが向上します。
-XX:MaxNewSize最大の新しいスペース。
-XX:MetaspaceSize静的コンテンツ用の初期スペース。
-XX:MaxMetaspaceSize静的コンテンツ用の最大スペース。
-XX:SurvivorRatio新しいスペースとSurvivor領域の比率。 Survivor領域は、古い世代の領域に昇格する前に、若い世代のオブジェクトを保持します。
note

DXPのインストール後、これらの構成(これらのJVMオプションを含む)をさらに調整して、パフォーマンスを向上させることができます。 詳細については、 Liferayの調整 および JVMの調整 を参照してください。

チェックポイント:

  1. ファイルエンコーディング、ユーザータイムゾーン、優先プロトコルスタックは、 standalone.conf.sh スクリプトの JAVA_OPTS で設定済みです。
  2. 利用可能なメモリのデフォルト量が増加しました。

これで、WildFlyにDXPをインストールするための規定のスクリプト変更が完了しました。

IBM JDKの使用

WildFlyサーバーでIBM JDKを使用する場合は、以下の追加手順を実行します。

  1. DXP 7.3 以前の場合、 $WILDFLY_HOME/modules/com/liferay/portal/main/module.xml ファイルに移動して、この依存関係を <dependencies> 要素内に挿入してください:

    <module name="ibm.jdk" />

  2. $WILDFLY_HOME/modules/system/layers/base/sun/jdk/main/module.xml ファイルに移動し、<paths>...</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 ファイルで構成できます。

Wildflyのデータソース構成

WildFlyを使用してデータソースを管理する場合は、次の手順に従います。

  1. DXP WAR(7.4以降)またはデータベースベンダーからJDBC JARを取得し、$WILDFLY_HOME/modules/com/liferay/portal/mainフォルダにコピーします。

  2. $WILDFLY_HOME/modules/com/liferay/portal/mainフォルダにmodule.xmlというファイルを作成します。 ファイル内で、portalモジュールとJDBC JARを宣言します。

    <?xml version="1.0"?>
    
    <module xmlns="urn:jboss:module:1.0" name="com.liferay.portal">
        <resources>
            <resource-root path="[place your database vendor's JAR file name here]" />
        </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>
    
  3. $WILDFLY_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 your driver name here]</driver>
        <security>
            <user-name>[place your user name here]</user-name>
            <password>[place your password here]</password>
        </security>
    </datasource>
    

    データベースのURL、ユーザー名、パスワードを適切な値に置き換えてください。

    note

    データソースjndi-nameを変更する必要がある場合は、<default-bindings>タグ内のdatasource要素を編集してください。

  4. <datasources> 要素内にもある standalone.xml ファイルの <drivers> 要素にドライバークラス名を追加します。

    <drivers>
        <driver name="[name of database driver]" module="com.liferay.portal">
            <driver-class>[JDBC driver class]</driver-class>
        </driver>
    </drivers>
    

    MySQLを使用する最終的なデータソースサブシステムは次のようになります。

    <subsystem xmlns="urn:jboss:domain:datasources:1.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>
    
  5. Liferay Homeフォルダのportal-ext.propertiesファイルで、JNDiデータソースを指定します。 例えば、

    jdbc.default.jndi.name=java:jboss/datasources/ExampleDS
    

これでデータソースが構成され、準備が整いました。

メールサーバーに接続する

データベース構成と同様に、メールを構成する最も簡単な方法は、DXPにメールセッションを処理させることです。 DXPの組み込みのメールセッションを使用する場合は、このセクションをスキップして、コントロールパネルでconfigure the mail sessionを行います。

WildFlyでメールセッションを管理する場合は、次の手順に従います。

  1. 次のように $WILDFLY_HOME/standalone/configuration/standalone.xml ファイルでメールサブシステムを指定します。

    <subsystem xmlns="urn:jboss:domain:mail:3.0">
        <mail-session jndi-name="java:jboss/mail/MailSession" name="mail-smtp">
            <smtp-server ssl="true" outbound-socket-binding-ref="mail-smtp" username="USERNAME" password="PASSWORD"/>
       </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 host here]" port="[place SMTP port here]"/>
        </outbound-socket-binding>
    </socket-binding-group>
    
  2. Liferay Homeの portal-ext.propertiesファイルで、メールセッションを参照します。 例:

    mail.session.jndi.name=java:jboss/mail/MailSession
    

DXPのデプロイ

  1. ROOT.warのデプロイをトリガーするには、$WILDFLY_HOME/standalone/deployments/フォルダに ROOT.war.dodeployという名前の空のファイルを作成します。
  2. $WILDFLY_HOME/bin に移動し、 standalone.shを実行して WildFly アプリケーションサーバーを起動します。 WildFlyはROOT.war.dodeployファイルを検出し、ファイルのプレフィックス(つまり、ROOT.war)に一致するWebアプリケーションをデプロイします。

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はWildFlyで実行されています。

次のステップ

管理者ユーザーとしてサインインして、DXPでソリューションの構築を開始できます。 または、Liferay DXPのその他のセットアップトピックを参照できます。

Capabilities

Product

Contact Us

Connect

Powered by Liferay
© 2024 Liferay Inc. All Rights Reserved • Privacy Policy