この記事では、Liferay Portal 6.2 を JBoss 7.1.3 で基本的なデプロイメントを行います。 これはあくまで基本的な設定であり、特定の環境に応じて微調整が必要な場合があることに留意してください。
解像度
1. コピーを入手する:
- JBoss 7.1.3
- liferay-portal-6.2.10.1-ee-ga1-20131126141110470.war
- liferay-portal-dependencies-6.2.10.1-ee-ga1-20131126141110470.zip
- liferay-portal-src-6.2.10.1-ee-ga1-20131126141110470.zip.
2. $JBOSS_HOME/modules/com/liferay/portal/main というフォルダを作成し、Liferay Portal Dependencies の zip ファイルにある jar ファイルをこのフォルダに解凍してください。 zip ファイルの jar ファイルが $JBOSS_HOME/modules/com/liferay/portal/main フォルダに展開されていることを確認してください。
3. データベースドライバ .jar ファイルをダウンロードし、 $JBOSS_HOME/modules/com/liferay/portal/main フォルダにも入れてください。 デモのために、 MySQL Connector/J ドライバ をダウンロードし、その .jar ファイルを $JBOSS_HOME/modules/com/liferay/portal/main フォルダに置きます。
4. jtds-<JTDS_VERSION>.jar. ファイルをダウンロードし、 $JBOSS_HOME/modules/com/liferay/portal/main フォルダに挿入してください。 このJDBCドライバは、 jTDSホームページでダウンロードし、詳細を確認することができます。
5. module.xml in $JBOSS_HOME/modules/com/liferay/portal/mainというファイルを作成します。 これにより、依存関係を参照します:
<?xml version="1.0"?>
<module xmlns="urn:jboss:module:1.0" name="com.liferay.portal">
<resources>
<resource-root path="hsql.jar" />
<resource-root path="jtds-1.3.1.jar" />
<resource-root path="mysql.jar" />
<resource-root path="portal-service.jar" />
<resource-root path="portlet.jar" />
</resources>
<dependencies>
<module name="ibm.jdk" />
<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>
異なるデータベースやJDBCドライバを使用している場合は、MySQLとjTDSリソースルートのエントリーのパスを正しいパスに置き換えてください。
6. 次に、JBossのデフォルトの .jar ファイルの1つに、Liferayのソースコードからパッチを含める必要があります。 Liferayのソースをダウンロードしたら、ソースを一時フォルダに解凍してください。 Liferay のソースの場所を $LIFERAY_SOURCEと呼ぶことにします。
7. 次に、スタンドアローンモードの設定を行います。
-
$JBOSS_HOME/standalone/configuration/standalone.xmlを以下のように修正する。 </extensions> と <management> のタグの間に、以下のシステムプロパティを追加します:<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>
-
deployment-timeout="240"を設定し、デプロイスキャナーのタイムアウトを追加します。<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1"> <deployment-scanner deployment-timeout="240" path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/> </subsystem>
- エレメント
<subsystem xmlns="urn:jboss:domain:security:1.2">で定義されたセキュリティサブシステム <security-domains> に、以下の JAAS セキュリティドメインを追加します。<security-domain name="PortalRealm"> <authentication> <login-module code="com.liferay.portal.security.jaas.PortalLoginModule" flag="required" /> </authentication> </security-domain> -
enable-welcome-root="false"を指定して、Web サブシステムの仮想サーバーのデフォルトホストのウェルカムルートを無効化します。<subsystem xmlns="urn:jboss:domain:web:1.2" default-virtual-server="default-host"> <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> <virtual-server name="default-host" enable-welcome-root="false"> <alias name="localhost" /> <alias name="example.com" /> </virtual-server> </subsystem> - ウェブサブシステム要素
<subsystem xmlns="urn:jboss:domain:web:1.2" default-virtual-server="default-host" native="false">の中に、次の <configuration> 要素を挿入する。<configuration> <jsp-configuration development="true" /> </configuration>
8. Standalone ドメインの設定スクリプトを変更する - $JBOSS_HOME/bin/standalone.conf (Windows では standalone.conf.bat)
- Windowsの場合、次の行のようにJAVA_OPTSの最初の割り当てをコメントアウトしてください:
rem set
JAVA_OPTS=-Xms64M -Xmx512M -XX:MaxPermSize=256M次に、ファイルの最後にあるJAVA_OPTS_SETの行の1行上に、次のJAVA_OPTSの割り当てを追加します。 セットです:
JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Djava.security.manager -Djava.security.policy=server.policy- Djboss.home.dir=$JBOSS_HOME -Duser.timezone=GMT -Xmx1024m -XX:MaxPermSize=256m - Unixでは、JAVA_OPTSの設定に以下の値をマージして、一致する属性を以下の課題で見つけたものに置き換えてください:
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Djava.security.manager -Djava.security.policy=server.policy -Djboss.home.dir=$JBOSS_HOME -Duser.timezone=GMT -Xmx1024m -XX:MaxPermSize=256m
9. フォルダ $JBOSS_HOME/modules/ibm/jdk/main を作成し、このフォルダ内に module.xml ファイルを作成・修正します。
10. $JBOSS_HOME/modules/ibm/jdk/main/module.xml ファイルに、既存の module.xml ファイルを以下の内容で置き換えてください:
<?xml version="1.0"?>
<module xmlns="urn:jboss:module:1.1" name="ibm.jdk">
<dependencies>
<system export="true">
<paths>
<path name="com/ibm" />
<path name="com/ibm/crypto/provider" />
<path name="com/ibm/jvm" />
<path name="com/ibm/jvm/io" />
<path name="com/ibm/jvm/util" />
<path name="com/ibm/match" />
<path name="com/ibm/misc" />
<path name="com/ibm/net" />
<path name="com/ibm/nio" />
<path name="com/ibm/nio/ch" />
<path name="com/ibm/security/auth" />
<path name="com/ibm/security/bootstrap" />
<path name="com/ibm/security/auth/module" />
<path name="com/ibm/security/util" />
<path name="META-INF/services" />
</paths>
</system>
</dependencies>
</module>
11. $JBOSS_HOME/modules/sun/jdk/main/module.xml ファイルに移動し、 <paths>...</paths> 要素の中に次のパス名を挿入します。
<path name="com/sun/crypto" /> <path name="com/sun/crypto/provider" /> <path name="com/sun/org/apache/xml/internal/resolver" /> <path name="com/sun/org/apache/xml/internal/resolver/tools" />
12. セキュリティ構成
Marketplaceから他の人のアプリを使い始める準備ができたら、ポータルとJBossサーバーをセキュリティ脅威から保護したいと思うでしょう。 そのためには、JBossサーバーでJava Securityを有効にし、ポータルにサーバーへのアクセスを許可するセキュリティポリシーを指定します。
- JBoss の設定」セクションで前述した
standalone.conf.batファイルで-Djava.security.managerと-Djava.security.policyJava オプションを設定したことを思い出してください。-Djava.security.managerJava オプションは、JBoss サーバーでセキュリティを有効にします。 同様に、-Djava.security.policyJavaオプションは、サーバーのJavaセキュリティポリシーの許可をリストアップします。 これらのオプションを設定していない場合、Javaセキュリティを使用する前に設定する必要があります。 - とりあえず、Liferayにサーバーへのアクセスを許可するために、すべてのパーミッションを開放してみましょう。 後でポリシーで権限を調整することができます。
$JBOSS_HOME/bin/server.policyファイルを作成し、以下の内容を追加します: -
grant { permission java.security.AllPermission; };
Java SE Security Architectureに関する広範な情報については、Oracle社の Java SE Documentation サイトにあるその仕様ドキュメントを参照してください。 また、Portalプラグインのリソースへのアクセスを設定する方法については、LiferayのDeveloper's Guideの12章のセクション Understanding Plugin Security Management を参照してください。
13. 新規フォルダを作成 $JBOSS_HOME/standalone/deployments/ROOT.war.
14. Liferay .war ファイルを ROOT.war フォルダに解凍してください。
15. ROOT.warのデプロイを開始するには、 ROOT.war.dodeploy という空のファイルを $JBOSS_HOME/standalone/deployments/ フォルダに作成します。 起動時にJBossはこのファイルの存在を検出し、Webアプリケーションとしてデプロイします。
16. $JBOSS_HOME/standalone/deployments/ROOT.war/WEB-INF/lib から eclipselink.jar を削除し、 eclipselink.jarで提供されているものではなく、Hibernate 永続プロバイダーを使用することを保証しています。
17. JBossのリポジトリからpicketboxライブラリ(JBoss 7.1.3では4.0.13)を更新する必要があります。
- 以下のリンクから入手できます:
- これらを入手したら、
$JBOSS_HOME㊦にコピーしてください - 次に、
$JBOSS_HOME¦modulesorg¦picketbox¦modules.xmlを以下のように修正します:<resources> <resource-root path="picketbox-4.0.15.Final.jar"/> <resource-root path="picketbox-infinispan-4.0.15.Final.jar"/> <resource-root path="picketbox-commons-1.0.0.final.jar"/> <!-- Insert resources here --> </resources>
18. JBossアプリケーションサーバーを起動します。
19. ライセンスをデプロイする。
ポータルが使えるようになりました。