portal-ext.properties
ファイルと同様に、 portal-${instance}.properties
ファイルは portal.properties
などで設定されたプロパティを特定の Liferay インスタンスで上書きします。 この記事では、これらのポータルプロパティファイルを単一のインスタンスに対して有効にするために必要な手順の概要を説明します。
解像度
- コントロールパネル > サーバ管理 > ポータルインスタンス にアクセスし、2つ(またはそれ以上)のポータルインスタンスのWeb IDを記録します。 2つ目のインスタンスを作成していない場合は、このステップで作成します。
- Liferayサーバーを停止し、
${tomcat_Home}/webapps/ROOT/WEB-INF/asses
に移動し、各ポータルインスタンス用のプロパティファイルを作成します。 各ファイルのタイトルは、以下のようにします。portal-{$instance_WebID}.properties
例えば、デフォルトのLiferayインスタンスのWeb IDはLiferay.comとなるわけです。 したがって、このインスタンスの
portal-{$instance}.properties
ファイルが呼び出されることになる。portal-Liferay.com.properties
- 同じパスに、
system-ext.properties
ファイルを作成し、以下の行を追加してください。company-id-properties=true
-
sentev.bat
(Linuxではsentev.sh
) を{$tomcat_Home}/bin
で開き、Java Setting に以下の行を追加してください。-Dcompany-id-properties=true
-
portal-{$instance}.properties
ファイルを開き、それぞれに以下の行を追加します。terms.of.use.required=
これらのファイルのうち少なくとも1つに false 、他のファイルに true という値を与えてください。
- ポータルを起動し、このプロパティが与えられた設定に従って適切に適用されることを確認する。 また、スタックトレースを見て、
portal-{$instance}.properties
ファイルがロードされていたことを確認します。 ファイルが正しく読み込まれた場合、ログには以下のような出力が表示されます。Loading file:/D:/Customer_Environment/liferay-portal-6.1.20-ee-ga2/portal-setup-wizard.properties for {companyId=10154, webId=liferay.com} Loading file:/D:/Customer_Environment/liferay-portal-6.1.20-ee-ga2/tomcat-7.0.27/webapps/ROOT/WEB-INF/classes/portal-liferay.com.properties for {companyId=10154, webId=liferay.com} ... Loading file:/D:/Customer_Environment/liferay-portal-6.1.20-ee-ga2/portal-setup-wizard.properties for {companyId=10435, webId=instance2.com} Loading file:/D:/Customer_Environment/liferay-portal-6.1.20-ee-ga2/tomcat-7.0.27/webapps/ROOT/WEB-INF/classes/portal-instance2.com.properties for {companyId=10435, webId=instance2.com}
プロパティ
terms.of.use.required=
が各インスタンスに適切に適用され、2つのportal-${instance}.properties
ファイルが両方ともスタックトレースにロードされていれば、portal-${instance}.properties
が正常に利用されたことになる。
リミテッド・プロパティーズ
すべてのプロパティがインスタンス単位で設定可能なわけではありません。 実際、ほとんどのプロパティは、インスタンスで設定することができません。 多くの場合、お客様のニーズに合わせて2つのバンドルに分けた方が効果的です。 しかし、個別のプロパティセットを持つポータルインスタンスを使用することが必要な場合、このリストは、インスタンスごとに設定可能なプロパティのタイプで構成されています。
- Google Apps
- FacebookコネクトSSO
- CAS
- OpenSSO
- アドミンポートレット
- SiteMinder
- LDAPコンテンツデリバリーネットワーク
- Flags ポートレットの Email セクション
- ディスカッションの電子メール通知設定の「電子メール」セクション。
- ゴミ箱
- OpenSSO
- ディスカッションタグライブラリでのメール通知セッション
- NTLM
- オープニド
- ユーザー
注:特定のプロパティがインスタンスごとに設定可能かどうかを確認したい場合は、ソースコードを見て、そのプロパティがメソッド内で CompanyId を使用しているかどうかを確認します。 例えば、プロパティ discussion.email.commments.added.enabled
には、 CompanyId が接続されています。
PrefsPropsUtil.getBoolean(message.getCompanyId(),PropsKeys.DISCUSSION_EMAIL_COMMENTS_ADDED_ENABLED))
したがって、上記の例では、メソッド内で会社IDを渡しています。 これは、あるプロパティがインスタンスごとに設定可能であるべきかを確認する1つの方法である。 そのメソッドにカンパニーIDが渡されない場合、インスタンスで設定できない可能性が高い。
ベストプラクティス
Liferay は、個別の Portal-{$instance}.properties
ファイルではなく、コントロールパネルでインスタンスごとにプロパティを設定することを推奨します。 この説明は、 portal.properties
ファイルを参照してください。
# Each portal instance can have its own overriden property file following
# the convention portal-companyWebId.properties. To enable this feature, set
# the "company-id-properties" system property to true.
#
# To enable:
#
# java ... -Dcompany-id-properties=true
#
# The read order will now be: portal.properties, then portal-ext.properties,
# and then portal-liferay.com.properties.
#
# Note that not all properties can have different values per company. This
# functionality is only available for legacy reasons. The preferred way to
# configure a portal instance is through the Control Panel.