Wildfly 11にバンドルされているLiferay DXP 7.1は、カスタマーポータル(DXP)またはLiferay Downloads(ポータルCE)で入手できます。 Liferay DXP 7.1は、Wildfly 10およびWildfly 11へのデプロイをサポートしています。既存のWildflyアプリケーションサーバーに手動でLiferay DXPをインストールする場合でも、依存関係を簡単に収集するためにLiferay DXP Wildflyバンドルをダウンロードすると便利です。先へ進む前に、DXPとPortal CE用にこれらのファイルもダウンロードしてください。
-
Liferay DXP WARファイル
-
依存関係のZIPファイル
-
OSGi JARのZIPファイル
Liferay DXPを手動でインストールするには、3つのステップがあります。
Liferay Homeは、Wildflyサーバーのフォルダを含むフォルダです。Liferay DXPがインストールされ、デプロイされると、Liferay Homeフォルダーには、Wildflyサーバーフォルダー、data
、deploy
、 logs
、そしてosgi
フォルダーが作成されます。$WILDFLY_HOME
はWildflyサーバーフォルダを参照します。通常はwildfly-[version]
という名前になっています。
Liferay DXP の依存ファイルをインストールする
Liferay DXPはLiferay DXP Wildflyバンドルに含まれる多くのJARに依存します。バンドル内のJARの中には必須ではないファイルもありますが、それでも有用です。Liferay DXP Wildflyバンドルがない場合は、下記のようにサードパーティから必要なJARをダウンロードしてください。
-
$WILDFLY_HOME/modules/com/liferay/portal/main
フォルダが存在しない場合は作成し、そのフォルダに依存関係のZIP JARを抽出します。com.liferay.petra.concurrent.jar
com.liferay.petra.executor.jar
com.liferay.petra.function.jar
com.liferay.petra.io.jar
com.liferay.petra.lang.jar
com.liferay.petra.memory.jar
com.liferay.petra.nio.jar
com.liferay.petra.process.jar
com.liferay.petra.reflect.jar
com.liferay.petra.string.jar
com.liferay.registry.api.jar
hsql.jar
portal-kernel.jar
portlet.jar
-
データベースドライバの
.jar
ファイルをダウンロードして、同じフォルダにコピーします。たとえば、MySQLのドライバを$WILDFLY_HOME/modules/com/liferay/portal/main
フォルダに コピーします。mariadb.jar
、mysql.jar
、およびpostgresql.jar
ドライバのJARがWildflyバンドルでも利用できます。 -
$WILDFLY_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="com.liferay.petra.concurrent.jar" /> <resource-root path="com.liferay.petra.executor.jar" /> <resource-root path="com.liferay.petra.function.jar" /> <resource-root path="com.liferay.petra.io.jar" /> <resource-root path="com.liferay.petra.lang.jar" /> <resource-root path="com.liferay.petra.memory.jar" /> <resource-root path="com.liferay.petra.nio.jar" /> <resource-root path="com.liferay.petra.process.jar" /> <resource-root path="com.liferay.petra.reflect.jar" /> <resource-root path="com.liferay.petra.string.jar" /> <resource-root path="com.liferay.registry.api.jar" /> <resource-root path="hsql.jar" /> <resource-root path="mysql.jar" /> <resource-root path="portal-kernel.jar" /> <resource-root path="portlet.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>
別のデータベースを使用する場合は、MySQL
.jar
をご使用のデータベース用のドライバJAR(HSQL、PostgreSQLなど)に置き換えてください。 -
Liferay Homeフォルダに
osgi
フォルダを作成します。ダウンロードしたOSGi ZIPファイルをosgi
フォルダに解凍します。この
osgi
フォルダはLiferay DXPのOSGiランタイムに必要なモジュールを提供します。
チェックポイント:
-
この時点で、
$WILDFLY_HOME/modules/com/liferay/portal/main
フォルダ内に次のファイルがあるはずです 。com.liferay.petra.concurrent
com.liferay.petra.executor.jar
com.liferay.petra.function.jar
com.liferay.petra.io.jar
com.liferay.petra.lang.jar
com.liferay.petra.memory.jar
com.liferay.petra.nio.jar
com.liferay.petra.process.jar
com.liferay.petra.reflect.jar
com.liferay.petra.string.jar
com.liferay.registry.api.jar
portal-kernel.jar
portlet.jar
- MySQL ConnectorなどのデータベースJAR。
-
module.xml
には<resource-root-path>
要素内のすべてのJARが列挙されています。 -
この
osgi
フォルダには、次のサブフォルダがあります。configs
core
marketplace
modules
portal
static
test
war
.jar
ファイルの準備ができました。
WildflyでLiferay DXPを実行する場合のスタンドアロンモードとドメインモード
Wildflyは、スタンドアロンモードまたはドメインモードのどちらでも起動できます。ドメインモードでは、複数のアプリケーションサーバーインスタンスを単一の制御点から管理できます。このようなアプリケーションサーバーの集まりはドメインと呼ばれます。 スタンドアロンモードとドメインモードの詳細については、Wildfly Admin Guideのこのトピックに関するセクションを参照してください 。 Liferay DXPは、スタンドアロンモードではWildflyを完全にサポートしていますが、ドメインモードではサポートしていません。
ドメインモードではWildflyでLiferay DXPを実行できますが、この方法は完全にはサポートされていません。特に、Liferay DXPのホットデプロイは管理されたデプロイでは機能しません。なぜなら、Wildflyはファイルをコピーすることによって管理されたデプロイメントの内容を管理するからです(展開または非展開)これにより、JSPフックとExtプラグインが意図したとおりに機能しなくなります。たとえば、Liferay DXPのJSPオーバーライドメカニズムはアプリケーションサーバーに依存しているため、JSPフックは、管理ドメインモードで実行されているWildflyでは機能しません。これらの機能はどちらも非推奨であるため、使用されない可能性があります。
コマンドラインインターフェイスは、ドメインモードのデプロイに推奨されます。
**注:**これはLiferay DXPが複数のWildflyサーバー上のクラスター環境で実行されるのを妨ぐわけではありません。スタンドアロンモードのWildflyサーバー上で実行されているLiferay DXPインスタンスのクラスターをセットアップできます。Liferay DXPクラスタの設定方法については、このガイドのLiferay DXP クラスタリングに関する章を参照してください 。
Wildflyの設定
次に、Liferay DXPを起動できるようにWildflyを設定します。
- 環境変数を設定する
- プロパティとディスクリプタを設定する
- 不要な設定を削除する
オプションとして、Liferay DXPのデータソースとメールセッションを管理するようにWildflyを設定することができます。
次に、Liferay DXPを起動できるようにWildflyを設定します。
$WILDFLY_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>
-
<level name="INFO"/>
タグのすぐ下にある<console-handler>
タグ内に、以下の<filter-spec>
タグを追加します。<filter-spec value="not(any(match("WFLYSRV0059"),match("WFLYEE0007")))" />
-
deployment-timeout="360"
を以下の抜粋のように設定して、デプロイメントスキャナーのタイムアウトを追加し ます。<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0"> <deployment-scanner deployment-timeout="360" path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/> </subsystem>
-
次のJAASセキュリティドメインを
<subsystem xmlns="urn:jboss:domain:security:2.0">
要素で定義されたセキュリティサブシステムの<security-domains>
に追加します 。<security-domain name="PortalRealm"> <authentication> <login-module code="com.liferay.portal.kernel.security.jaas.PortalLoginModule" flag="required" /> </authentication> </security-domain>
-
以下のWeld関連のタグを削除します。
<extension module="org.jboss.as.weld"/>
<subsystem xmlns="urn:jboss:domain:weld:4.0"/>
-
ウェルカムコンテンツを提供する2つのコードスニペットを削除します。
<location name="/" handler="welcome-content"/>
そして
<handlers> <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/> </handlers>
-
``
タグを検索し、そのタグ内に development
、source-vm
、およびtarget-vm
の属性を設定します。終了すると、タグは次のようになります。<jsp-config development="true" source-vm="1.8" target-vm="1.8" />
チェックポイント:
続行する前に、standalone.xml
ファイルに以下のプロパティが設定されていることを確認してください。
-
新しい
<system-property>
が追加されました。 -
新しい
<filter-spec>
が追加されました。 -
<deployment-timeout>
は360
に設定されています。 -
新しい
<security-domain>
が作成されました。 -
Weldタグは削除されました。
-
ウェルカムコンテンツも削除されました。
-
<jsp-config>
タグには、新しい属性が含まれています。
次に、JVMと起動スクリプトを設定する必要があります。
$WILDFLY_HOME/bin/
フォルダ内にある、スタンドアロンドメインの設定スクリプトファイルのstandalone.conf
を変更する必要があります。(Windowsの場合はstandalone.conf.bat
)
-
ファイルエンコーディングを設定します
-
ユーザーのタイムゾーンを設定します
-
優先プロトコルスタックを設定します
-
デフォルトの利用可能なメモリ容量を増やします。
使用しているオペレーティングシステムに応じて、以下の編集を行います。
Windows:
-
最初の
JAVA_OPTS
の割り当てを以下のようにコメントアウトします。rem set "JAVA_OPTS=-Xms64M -Xmx512M -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m"
-
ファイルの末尾にある
JAVA_OPTS_SET
の行の1行上に、以下のJAVA_OPTS
の割り当てを追加します。set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Djboss.as.management.blocking.timeout=480 -Duser.timezone=GMT -Xmx2048m -XX:MaxMetaspaceSize=512m -XX:MetaspaceSize=200m"
Unix:
-
if [ "x$JAVA_OPTS" = "x" ];
の文の下にある、以下のJAVA_OPTS
の文を削除します。JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true"
そして、以下の文を挿入します。
JAVA_OPTS="-Djava.net.preferIPv4Stack=true"
-
ファイルの末尾に以下の文を追加します。
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Djboss.as.management.blocking.timeout=480 -Duser.timezone=GMT -Xmx2048m -XX:MaxMetaspaceSize=512m -XX:MetaspaceSize=200m"
**注:**WildflyサーバーでIBM JDKを使用する予定の場合は、いくつか追加のステップを実行する必要があります。まず、$WILDFLY_HOME/modules/com/liferay/portal/main/module.xml
ファイルに移動して 、<dependencies>
要素内に以下の依存関係を挿入します。$WILDFLY_HOME/modules/system/layers/base/sun/jdk/main/module.xml
ファイルに移動して 、<paths>...</paths>
要素内に以下のパス名を挿入します。
チェックポイント:
これで、アプリケーションサーバーのJVM設定は完了しました。
-
ファイルのエンコーディング、ユーザーのタイムゾーン、優先プロトコルスタックは
standalone.conf.bat
ファイルのJAVA_OPTS
に設定されています。 -
デフォルトの利用可能なメモリ容量が増えました。
WildflyにLiferay DXPをインストールするための規定されたスクリプトの修正は、完了しました。次に、データベースを設定します。
データベースの設定
データベース設定を処理する上で一番簡単な方法は Liferay DXPにデータソースを管理させることです。 基本設定ページでは、Liferay DXPの組み込みデータソースを設定できます。組み込みデータソースを使用する場合は、このセクションは必要ではありません。
以下の例ではMySQLを使用しています。別のデータベースを使用している場合は、必要に応じてデータソースとドライバのスニペットを変更します。
Wildflyでデータソースを管理する場合は、次の手順で行います:
-
$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>jdbc:mysql://localhost/lportal</connection-url> <driver>mysql</driver> <security> <user-name>root</user-name> <password>root</password> </security> </datasource>
必ず、データベース名(つまり
lportal
)、ユーザー名、およびパスワードを適切な値に置き換えてください。**注:**データソースの
jndi-name
を別のものに変更する必要がある場合は、<default-bindings>
タグのdatasource
要素も編集する必要があります。 -
standalone.xml
ファイルの<drivers>
要素にもドライバを追加します。この要素は<datasources>
要素内にもあります。<drivers> <driver name="mysql" module="com.liferay.portal"> <driver-class>com.mysql.jdbc.Driver</driver-class> </driver> </drivers>
最終的なデータソースのサブシステムは次のようになります。
<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.jdbc.Driver</driver-class> </driver> </drivers> </datasources> </subsystem>
-
Liferay Home内の
portal-ext.properties
ファイルで、データソースを指定します。jdbc.default.jndi.name=java:jboss/datasources/ExampleDS
データソースが設定できたので、次にメールセッションを設定します。
メール設定
データベースと同様に、メール設定の処理もLiferay DXPに行わせるのが一番簡単な方法です。Liferay DXPの組み込みメールセッションを使用したい場合は、このセクションを飛ばしてコントロールパネルでメールセッションを設定してください。
Wildflyでメールセッションを管理したい場合は、次の手順に従ってください。
-
$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="smtp.gmail.com" port="465"/> </outbound-socket-binding> </socket-binding-group>
-
Liferay Home内の
portal-ext.properties
ファイルで、メールセッションを参照します。mail.session.jndi.name=java:jboss/mail/MailSession
次に、Liferay DXPをWildflyアプリサーバーにデプロイします。
Liferay DXPをデプロイする
これで、Liferay DXP WARファイルを使用してLiferay DXPをデプロイする準備が整いました。
-
Wildflyインストールに
$WILDFLY_HOME/standalone/deployments/ROOT.war
フォルダがすでに存在する場合は、そのサブフォルダとファイルをすべて削除してください。 そうでない場合は、$WILDFLY_HOME/standalone/deployments/ROOT.war
という名称の新しいフォルダを作成します 。 -
ROOT.war
フォルダにLiferay DXP.war
ファイルを解凍します。 -
ROOT.war
のデプロイを実行するために、$WILDFLY_HOME/standalone/deployments/
フォルダ内にROOT.war.dodeploy
という名前の空のファイルを作成します。 立ち上げ時に、Wildflyはこのファイルの存在を検出し、それをWebアプリケーションとしてデプロイします。 -
$WILDFLY_HOME/bin
に移動し、standalone.bat
またはstandalone.sh
を実行して、Wildflyアプリケーションサーバーを起動します。
これで、WildflyにLiferay DXPをデプロイできました。
Liferay DXPをデプロイした後、PhaseOptimizer
を含む以下のような過剰な警告とログメッセージが表示される場合があります。これらは良性なので無視することができます。このようなログメッセージを回避するために、必ずアプリケーションサーバーのログレベルまたはログフィルターを調整してください。