IBM ® WebSphere ®は、International Business Machines Corporationの商標であり、世界中の多くの国で登録されています。
Liferay DXPを正しく機能させるには、WebSphere 8.5.5フィックスパック11以降またはWebSphere 9(フィックスパック7が最新)をインストールする必要があります。フィックスパックについての詳しい情報はhereを参照してください。
また、Liferay DXPはWebSphere Application Liberty Profileをサポートしていません。
以下のLiferay DXPの一般的なインストール手順について書かれている記事にも目を通しておいてください。
Liferay HomeのフォルダはLiferay DXPのオペレーションにとって大切です。Liferay Homeでは、Liferay DXPが実行するために必要な特定のファイルとフォルダを作成します。WebSphereでは、Liferay Homeは一般的に[Install Location]/WebSphere/AppServer/profiles/your-profile/liferay
です。
まずはじめに、liferay.comのカスタマーポータルからLiferay DXPのWARファイルと依存関係をダウンロードしてください。 以下のファイルが必要です:
-
liferay-dxp-digital-enterprise-[version].war
-
liferay-dxp-digital-enterprise-dependencies-[version].zip
-
liferay-dxp-digital-enterprise-osgi-[version].zip
では早速WebSphereにLiferay DXPをインストールしましょう!
Liferay DXPのためのWebSphereの準備
アプリケーションサーバーバイナリがインストールされたら、 *[Profile Management Tool]*を起動してLiferay DXPに適したプロファイルを作成します。
-
*[Create…]をクリックし、[Application Server]を選択して、[Next]*をクリックします。
-
Advanced プロファイル作成オプションをクリックしてから、*[Next]*をクリックします。アドバンスドプロファイルは、プロファイルのロケーションやプロファイルの名前、ノードおよびホストなどの設定に独自の値を指定したり、独自のポートを割り当てたりするために必要です。また、管理コンソールとサンプル・アプリケーションをデプロイするかどうかを選択したり、IBM HTTP サーバー用のWebサーバー定義を追加したりするのにも必要です。これらのオプションについての詳細は、WebSphereの資料を参照してください。
-
Deploy the administrative consoleボックスをチェックします。これにより、アプリケーションサーバーを操作するためのWebベースのUIが得られます。デフォルトのアプリケーションはスキップしてください。これは開発用のマシンにインストールするだけです。*[Next]*をクリックしてください 。
-
プロファイル名とロケーションを設定します。プロダクションサーバーをインストールしているので、必ずDevelopment以外のパフォーマンスチューニング設定を指定してください。パフォーマンスチューニング設定についての詳細は、WebSphereの資料を参照してください。*[Next]*をクリックしてください。
-
サーバーのノード、サーバー、およびホスト名を選択してください。これらは使用している環境に特有のものです。*[Next]*をクリックしてください。
-
WebSphereの管理セキュリティーは、誰が管理ツールにアクセスできるかを制限します。WebSphereサーバーを管理するにはユーザー名とパスワードが必要になるように、環境設定で有効にしておくことをおすすめします。詳しくは、WebSphereの資料を参照してください。*[Next]*をクリックしてください 。
-
各プロファイルにはセキュリティ証明書も必要です。 証明書を持っていない場合は、個人証明書と署名証明書を生成するオプションを選択して、*[Next]*をクリックします。
証明書が生成されたら、キーストアのパスワードを設定します。*[Next]*をクリックしてください 。
-
これで、このサーバープロファイルが使用するポートをカスタマイズできます。その時、必ずマシンで開いているポートを選択してください。ポートを選択するときに、ウィザードは既存のWebSphereインストールを検出します。そこでアクティビティーを見つけた場合はポートを1つ増やします。
-
マシンの起動時にこのプロファイルを開始したいかどうかを選択してください。*[Next]*をクリックしてください 。
-
WebSphereはIBM HTTP Serverに同梱されています。これは以前のApacheと同じですが、現在はブランドが変更されています。このJVMがHTTPサーバーから転送された要求を受信するように、Webサーバー定義が必要かどうかを選択します。これについての詳細は、WebSphereの資料を参照してください。終了したら、*[Next]*をクリックします。
-
その後、ウィザードには選択した内容の概要が表示されます。ここで、選択内容のまま続行することができますし、変更点をを加えることもできます。表示されている内容でよければ、 Nextをクリックします。
その後、WebSphereはプロファイルを作成し、プロファイルが正常に作成されたことを知らせるメッセージが表示されます。これでプロフィールは完成しました。しかしまだアプリケーションサーバーで設定しなければならないことがいくつかあります。
WebSphere Application Serverの設定
このバージョンのWebSphereでは、サーブレットフィルタはWebアプリケーションの起動時に初期化されるのではなく、初回アクセス時に初期化されます。しかし、これは特定のアプリをLiferay DXPにデプロイするときに問題を引き起こす可能性があります。アプリケーションの起動時(つまりデプロイ時)に初期化するようにサーブレットフィルタを設定するには、以下のwebcontainer
プロパティをWebSphereアプリケーションサーバーで設定します。
com.ibm.ws.webcontainer.initFilterBeforeInitServlet = true
com.ibm.ws.webcontainer.invokeFilterInitAtStartup = true
webcontainer
プロパティをWebSphereアプリケーションサーバーで設定するには、here in WebSphere’s documentationに記載されている手順に従ってください。
Liferay DXP用のJVMパラメータの設定
次に、Liferay DXP用に作成したWebSphereプロファイルに、Liferay DXPのJavaメモリー要件をサポートする引数を設定する必要があります。
以下のファイルを修正します:
[Install Location]/WebSphere/AppServer/profiles/your-profile/config/cells/your-cell/nodes/your-node/servers/your-server/server.xml
jvmEntries
タグの中にmaximumHeapSize="2048"
を追加します。例えば:
<jvmEntries xmi:id="JavaVirtualMachine_1183122130078" ... maximumHeapSize="2048">
管理者はUTF-8プロパティをserver.xml
ファイルで設定できます。この設定を行わないと、特殊文字が正しく解析されません。jvmEntries
タグ内に以下を追加してください:
<jvmEntries xmi:id="JavaVirtualMachine_1183122130078" ...genericJvmArguments="-Dfile.encoding=UTF-8">
あるいは、管理者はWebSphere管理コンソールからUTF-8プロパティを設定することもできます。(下記参照。)
secureSessionCookieタグの削除
同じプロファイル上で、問題を引き起こす可能性があるsecureSessionCookie
タグをLiferay DXPから削除する必要があります。なぜなら、これにより立ち上げ時にエラーが発生するかもしれないからです。 しかしこれは単なるデフォルト設定です;Liferay DXPがインストールされたら、使用状況に基づいて適切に調整する必要があります。
[Install Location]/WebSphere/AppServer/profiles/your-profile/config/cells/your-cell/cell.xml
から、xmi:id="SecureSessionCookie_1
を含むsecureSessionCookie
タグを削除してください。
このタグが削除されていないと、以下と同様のエラーが発生する可能性があります:
WSVR0501E: Error creating component com.ibm.ws.runtime.component.CompositionUnitMgrImpl@d74fa901
com.ibm.ws.exception.RuntimeWarning: com.ibm.ws.webcontainer.exception.WebAppNotLoadedException: Failed to load webapp: Failed to load webapp: SRVE8111E: The application, LiferayEAR, is trying to modify a cookie which matches a pattern in the restricted programmatic session cookies list [domain=*, name=JSESSIONID, path=/].
Liferay DXPの依存関係をインストールする
次にLiferay DXPの依存関係をインストールする必要があります。以前に以下の依存関係を含む2つのZIPファイルをダウンロードしました。今度は、それらのコンテンツをインストールしてください:
-
liferay-dxp-digital-enterprise-dependencies-[version].zip
:このファイルを解凍し、その内容をWebSphereアプリケーションサーバーの[Install Location]/WebSphere/AppServer/lib/ext
フォルダに入れてください。JDBCデータベースドライバJAR
がある場合は、それも同じロケーションにコピーします。 -
同じアーカイブから、
portlet.jar
をWebSphere 8.5.5.11用に[Install Location]/WebSphere/AppServer/java/java-[version]/jre/lib/ext
へコピーしてください。もしくは、[Install Location]/WebSphere/AppServer/javaext
をWebSphere 9.0.0.x.用にコピーしてください。 WebSphereにはすでに古いバージョンのportlet.jar
が含まれており、それは最も高いレベルのクラスローダーでオーバーライドする必要があります。新しいportlet.jar
(バージョン3)は後方互換性を維持しています。 -
liferay-dxp-digital-enterprise-osgi-[version].zip
:このファイルを解凍し、その内容を[Liferay Home]/osgi
フォルダに入れてください(このフォルダがない場合は作成してください)。
これは通常[Install Location]/WebSphere/AppServer/profiles/your-profile/liferay/osgi
です。
サーバーを起動する前に、以下のjarファイルがすべて正しいフォルダーにコピーされていることを確認してください。オプショナルのjarファイル(斜字体)を利用することもできます。これは、このフォルダに追加しなければいけないLiferayのパフォーマンスを最適化するために使用されています。
太字の必須のjarファイルはliferay-digital-enterprise-dependencies-[version] zip
からのものです。以下のファイルがlib/ext
(WebSphereアプリケーション)フォルダの中になければいけません。
The
activation.jar
com.liferay.registry.api.jar
hsql.jar
- JDBCデータベースjar(例:MySQL、MariaDB、IBM DB2、Postgres for production)
persistence.jar
portal-kernel.jar
portlet.jar
/liferay/osgi
フォルダの中に以下のフォルダがなければいけません:
Configs
Core
Marketplace
Modules
Portal
Static
Test
War
Liferay DXPのportlet.jarが最初にロードされるようにする
portlet.jar
を正しいフォルダーに入れることに加えて、config.ini
ファイルが最初にロードされるように設定する必要があります。/IBM/WebSphere/AppServer/configuration/config.ini
に移動します。
-
このプロパティを探してください:
com.ibm.CORBA,com.ibm
-
javax.portlet,javax.portlet.filter,javax.portlet.annotations
のプロパティをcom.ibm.CORBA
の後、そしてcom.ibm
の前に入れてください。 -
ファイルを保存します。
これらの依存関係をインストールしてconfig.ini
ファイルを設定したら、Liferay DXP用に作成したサーバープロファイルを起動します。起動したら、データベースを設定する準備が整いました。
データベースの設定方法
WebSphereにデータベース接続を管理させたい場合は、以下の手順に従ってください。Liferay DXPのスタンダードデータベース設定を使用する予定であれば、この手順は必要ないので飛ばしてください。インストール後にLiferay DXPのセットアップウィザードでデータベース情報を設定します。
-
WebSphereを起動します。
-
管理コンソールを開いてログインします。
-
*[Resources] > [JDBC Providers]*をクリックします。
-
範囲を選択して、*[New]*をクリックします。
-
データベースの種類、プロバイダの種類、およびインプリメンテーションの種類を選択します。 定義済みデータベースを選択した場合、ウィザードが名前と説明のフィールドを自動で入力してくれます。使用したいデータベースが表示されていない場合は、Database typeのフィールドからUser-definedを選択し、Implementation Class Nameを入力します。例えば、MySQLを使用している場合は、[Database type] > *[User-defined]を選択し、[Implementation Class Name]*に
com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
を入力してください。これが完了したら、 [Next] をクリックします。 -
クラスパス設定内のテキストを消去します。サーバーのクラスパス上に、必要なJARがすでにコピーされています。*[Next]*をクリックしてください。
-
設定を確認したら*[Finish]*をクリックします。最終的な設定は次のようになります:
-
表に表示されたら、新しいプロバイダ設定をクリックし、*[Additional Properties]にある[Data Sources]をクリックします。[New]*をクリックします。
-
[Data source name]フィールドにliferaydatabasesource を入力し、*[JNDI name]に
jdbc/LiferayPool
を入力します。[Next]*をクリックします。 -
ウィザードの残りの画面で*[Next]*をクリックしてデフォルト値を受け入れてください。次に、変更内容を確認して *[Finish]*をクリックします。
-
表にデータソースが表示されたらそれをクリックし、[Custom Properties]をクリックします。[Show Filter Function]ボタンをクリックしてください。これは、NewボタンとDeleteボタンの下にある小さいアイコンの最後から2番目にあるボタンです。
-
userを検索語に入力し、Goをクリックします。
-
userプロパティを選択し、それにデータベースのユーザー名の値を入力します。[OK] をクリックしてマスターコンフィグレーションに保存します。
-
urlプロパティに対して別のフィルタ検索を実行します。このプロパティにデータベースを指す値を指定します。例えば、MySQLのURLは次のようになります:
jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
*[OK]*をクリックしてマスターコンフィグレーションに保存します。
-
passwordプロパティに対して別のフィルタ検索を実行します。このプロパティーの値として、以前に追加したユーザーIDのパスワードを入力してください。*[OK]*をクリックしてマスターコンフィグレーションに保存します。
-
ブレッドクラムトレイルをクリックして、データソースページに戻ります。 *[Test Connection]*ボタンをクリックします。正常に接続するはずです。
データベースが設定できたら、メールセッションを設定できるようになります。
メール設定方法
WebSphereにメールセッションを管理させたい場合は、以下の手順に従ってください。 Liferay DXPの組み込みメールセッションを使いたい場合は、このセクションを飛ばしてください。
WebSphere管理メールセッションの作成(オプショナル)
-
*[Resources] > [Mail] > [Mail Providers]*をクリックしてください。
-
ご使用のノードとサーバー用の組み込みメールプロバイダーをクリックします。
-
*[Mail Sessions]をクリックしてから、[New]*ボタンをクリックします。
-
メールセッションにliferaymailという名前をつけて、JNDIには
mail/MailSession
という名前を付けます。Outgoing Mail PropertiesおよびIncoming Mail Propertiesのセクションに、メールサーバーの正しい情報を入力ししてください。*[OK]*をクリックしたら、マスターコンフィグレーションに保存します。 -
表にメールセッションが表示されたらそれをクリックし、*[Additional Properties]の下にある[Custom Properties]*を選択してください。プロトコル、ポート、SSLを使用するかどうかなど、メールサーバーに必要なその他のJavaMailプロパティを設定します。
-
[Security] > [Global Security] の順にクリックし、*[Use Java 2 security to restrict application access to local resources]が選択されている場合は、選択からはずしてください。[Apply]*をクリックし ます。
メールサーバーからSSL証明書を取得し、それをWebSphereのトラストストアに追加する必要があるかもしれません。これについての説明は、WebSphereの資料を参照してください。
WebSphere Mail Providerの確認
1)WARが展開されていて、2)サーバーが起動していて、3)ユーザーがシステム管理者としてサインインしていると、メールセッションが正しく設定されているかどうか確認するためのテストをいくつか行うことができます。簡単に確認できる方法の1つとして、新しいユーザーとその有効なメールあアカウントを作成するという方法があります。新しく作成されたユーザーにEメール通知が来るはずです。ログには、SMTPサーバーがリストされている正しいポート番号でピングされていることが表示されます。
HTTPセッション用のCookieを有効にする
WebSphereはデフォルトでCookieをHTTPSセッションに制限しています。代わりにHTTPを使用している場合は、これによってユーザーがLiferay DXPにサインインできなくなり、コンソールに次のエラーが表示されます:
20:07:14,021 WARN [WebContainer : 1][SecurityPortletContainerWrapper:341]
User 0 is not allowed to access URL http://localhost:9081/web/guest/home and
portlet com_liferay_login_web_portlet_LoginPortlet
これは、HTTPを使用するときにLiferay DXPがHTTPS Cookieを使用できないために発生します。その結果、ページが更新されるたびに新しいセッションが作成されます。WebSphereでこの問題を解決するには、以下のステップに従ってくださ:
- [Application Servers] > [server1] > [Session Management]
[Enable Cookies]をクリックします。
-
Restrict cookies to HTTPS sessionsを選択からはずしてください。
-
*[Apply]*をクリックします。
-
*[Save]*をクリックします。
[UTF-8]を有効にします。
server.xml
に-Dfile.encoding=UTF-8
プロパティを追加していない場合は、管理コンソールで追加することができます。
-
[Application Servers] > [server1] > *[Process definition]*をクリックします。
-
*[Additional Properties]*の下の *[Java Virtual Machine]*をクリックします。
-
[Generic JVM arguments]
のフィールドに*-Dfile.encoding=UTF-8*を入力します。 -
*[Apply]をクリックしてマスターコンフィグレーションに[Save]*します。
変更が保存されると、ローカライズされたコンテンツがある場合、Liferay DXPは特殊文字を解析できるようになります。
Liferay DXPをデプロイする
これで、Liferay DXPをデプロイする準備が整いました。
-
WebSphereの管理コンソールで、[Applications] > [New Application] > *[New Enterprise Application]*をクリックします。
-
Liferay DXP の
.war
ファイルを選択して*[Next]*をクリックします。 -
[Fast Path]を選択したままにして、[Next]をクリックします。[Distribute Application] がチェックされていることを確認して、もう一度*[Next]*をクリックします。
-
Liferay DXPをデプロイしたいWebSphereランタイムおよび/またはクラスターを選択してください。*[Next]*をクリックしてください。
-
Liferay DXPをデプロイする仮想ホストを選択して、*[Next]*をクリックします。
-
Liferay DXPをルートコンテキスト(/)にマッピングして、Nextをクリックします。
-
使用したいmetadata-complete attribute設定を選択して、*[Next]*をクリックします。
-
すべて正しいものを選択したことを確認して、*[Finish]をクリックしてください。Liferay DXPがインストールされたら、[Save to Master Configuration]*をクリックします。
これでLiferay DXPがインストールされました。
JSPをコンパイルするためのJDKバージョンの設定
Liferay DXPでは、JSPがJava 8バイトコード形式にコンパイルされている必要があります。WebSphereが確実にこれを実行するようにするには、Liferay DXP.war
ファイルをデプロイした後にWebSphereをシャットダウンしてください。WEB_INF
フォルダに移動し、以下の設定をibm-web-ext.xml
、または(ほとんどの場合)、ibm-web-ext.xmi
ファイルに追加してください:
<jsp-attribute name="jdkSourceLevel" value="18" />
ibm-web-ext.xmi
ファイルへの正確なパスは、WebSphereのインストールのロケーションとLiferay DXPのバージョンによって異なりますが、例は以下の通りです:
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/localhostNode01Cell/applications/liferayXX.ear/deployments/liferayXX/liferayXX.war/WEB-INF/ibm-web-ext.xmi
Liferay DXP.war
はibm-web-ext.xmi
ファイルと一緒にパッケージされています;このフォーマットは機能的に.xml
と同じであり、WebSphereは両方のフォーマットを認識します。WebSphereがJSPをコンパイルする一般的な情報については、こちらのIBMの公式書類を参照してください:WebSphere Application Server 8.5.5.x または WebSphere Application Server 9.0.0.x.
これでWebSphereを再起動してください。
Liferay DXPを起動する
-
Liferay DXPのセットアップウィザードを使用する予定の場合は、その次の手順に進んでださい。WebSphereのデータソースとメールセッションを使用したい場合は、Liferay Homeフォルダに
portal-ext.properties
というファイルを作成してください。そのファイルに次の設定を入れます:jdbc.default.jndi.name=jdbc/LiferayPool mail.session.jndi.name=mail/MailSession setup.wizard.enabled=false
-
WebSphere管理コンソールでは、*[Enterprise Applications]に移動し、Liferay DXPアプリケーションを選択してから、[Start]*をクリックしてください。Liferay DXPが起動している間、WebSphereは回転するグラフィックを表示します。
-
Liferay DXPのセットアップウィザードで、データベースの種類を選択して設定します。完了したら、[Finish] をクリックします。その後、Liferay DXPはデータベースに必要な表を作成します。
これでLiferay DXPをWebSphereにインストールできました!