Apache2.2+Mod_JK+GlassFishV3構築

Javaで、システムを構築する場合、ミドルは、Apache2.2+GlassFishV3構成で、
組むことが多いので、方法を記載します。
GlassFishV3ですが、J2EE5準拠です。
また、3.1系の場合は、JDK1.6のUPDATE20以降が必要です。

Apache+GlassFish起動ユーザ作成

[user@localhost]$ sudo su - root
[root@localhost]# groupadd server
[root@localhost]# useradd glassfish -g server

Apache2.2インストール

[root@localhost]# cd /usr/local
[root@localhost]# mkdir httpd-2.-2.19
[root@localhost]# cd src
[root@localhost]# wget http://www.meisei-u.ac.jp/mirror/apache/dist//httpd/httpd-2.2.19.tar.gz
[root@localhost]# tar -zxvf httpd-2.2.19.tar.gz
[root@localhost]# cd httpd-2.2.19
[root@localhost]# CC='gcc -m64' CFLAGS='-m64' ./configure --prefix=/usr/local/httpd-2.2.19 --enable-module=so --enable-rule=SHARED_CORE
[root@localhost]# make
[root@localhost]# make install

Mod_JKインストール

[root@localhost]# cd /usr/local/src
[root@localhost]# wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.31/tomcat-connectors-1.2.31-src.tar.gz
[root@localhost]# tar -zxvf tomcat-connectors-1.2.31-src.tar.gz
[root@localhost]# cd tomcat-connectors-1.2.31-src/native
[root@localhost]# ./buildconf.sh
[root@localhost]# CC='gcc -m64' CFLAGS='-m64' ./configure --with-apxs=/usr/local/httpd-2.2.19/bin/apxs
[root@localhost}# make
[root@localhost]# cd apache-2.0
[root@localhost]# cp mod_jk.so /usr/local/httpd-2.2.19/lib

Apache設定

[root@localhost]# cd /usr/local/httpd-2.2.19/conf
[root@localhost]# vi httpd.conf
User glassfish
Group server
ServerName developer-web01.ne.jp

Include conf/ext/httpd-default.conf
Include conf/ext/httpd-mpm.conf
Include conf/ext/httpd-mod_jk.conf
[root@localhost]# mkdir ext
[root@localhost]# cd ext
[root@localhost]# cp ../extra/httpd-default.conf
[root@localhost]# cp ../extra/httpd-mpm.conf
[root@localhost]# vi uriworkermap.properties
/developer/*=worker1
/developer=worker1
[root@localhost]# vi workers.properties
worker.list=worker1

worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.ping_timeout=1000
worker.worker1.ping_mode=A
worker.worker1.socket_timeout=600
worker.worker1.connection_pool_size=1
worker.worker1.connection_pool_timeout=600
[root@localhost]# vi httpd-mod_jk.conf
LoadMoudule jk_module lib/mod_jk.so
<IfModule mod_jk.c>
 JkWorkersFile /usr/local/httpd-2.2.19/conf/ext/workers.properties
 JkLogFile /usr/local/httpd-2.2.19/logs/mod_jk.log
 JkLogLevel info
 JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
 JkRequestLogFormat "%w %V %T"
 JkOptions +ForwardKeySize +ForwardURLCompat -ForwardDirectories
 JkMountFile /usr/local/httpd-2.2.19/conf/ext/uriworkermap.properties
</IfModule>

Apache起動

[root@localhost]# /usr/local/httpd-2.2.19/bin/apachectl start

JDK1.6インストール

下記のサイトからJDKをダウンロードします。
http://www.oracle.com/technetwork/java/javase/downloads/index.html
ダウンロードしたファイルは、「/usr/local/src」に保存するものとします。

[root@localhost]# cd /usr/local
[root@localhost]# chmod +x src/jdk-6u26-linux-x64.bin
[root@localhost]# src/jdk-6u26-linux-x64.bin

GlassFishV3インストール

[root@localhost]# cd /usr/local
[root@localhost]# mkidr glassfish
[root@localhost]# cd src
[root@localhost]# wget http://download.java.net/glassfish/3.1/release/glassfish-3.1-unix-ml.sh
[root@localhost]# vi answer
RegistrationOptions.regoptions.CREATE_NEWACCT=CREATE_NEWACCT
glassfish.Administration.HTTP_PORT=7777
updatetool.Configuration.PROXY_PORT=
glassfish.Administration.ADMIN_PASSWORD=******
JDKSelection.directory.JDK_FROM_LIST_CHOICE=true
RegistrationOptions.regoptions.SKIP_REGISTRATION=SKIP_REGISTRATION
updatetool.Configuration.PROXY_HOST=
SOAccountCreation.accountinfo.COUNTRY=
InstallHome.directory.INSTALL_HOME=/usr/local/glassfishv3
RegistrationOptions.regoptions.USE_EXISTINGACCT=USE_EXISTINGACCT
SOAccountCreation.accountinfo.FIRSTNAME=
updatetool.Configuration.ALLOW_UPDATE_CHECK=true
glassfish.Administration.ADMIN_USER=admin
JDKSelection.directory.JDK_LIST=/usr/local/jdk1.6.0_26
SOAccountCreation.accountinfo.PASSWORD=
SOAccountCreation.accountinfo.COMPANYNAME=
JDKSelection.directory.HIDDEN_JDK=/usr/local/jdk1.6.0_26
SOAccountCreation.accountinfo.COUNTRY_DROP_DOWN=
SOAccountCreation.accountinfo.REENTERPASSWORD=
License.license.ACCEPT_LICENSE=0
RegistrationOptions.regoptions.USERNAME=
updatetool.Configuration.BOOTSTRAP_UPDATETOOL=true
SOAccountCreation.accountinfo.LASTNAME=
glassfish.Administration.ADMIN_PORT=4848
RegistrationOptions.regoptions.USERPASSWORD=
JDKSelection.directory.JDK_TYPED_IN_CHOICE=false
SOAccountCreation.accountinfo.EMAIL=
JDKSelection.directory.JDK_TYPE_IN=
RegistrationOptions.regoptions.DUMMY_PROP=
[root@localhost]# chmod +x glassfish-3.1-unix-ml.sh
[root@localhost]# ./glassfish-3.1-unix-ml.sh -a answer -s
[root@localhost]# cd /usr/local/glassfishv3/glassfish/domains
[root@localhost]# rm -fr domain1
[root@localhost]# cd /usr/local
[root@localhost]# chown -R glassfish:server glassfishv3

GlassFishドメイン作成

[root@localhost]# su - glassfish
[glassfish@localhost]$ cd /usr/local/glassfishv3/glassfish/bin
[glassfish@localhost]$ ./asadmin crate-domain
Enter admin user name [Enter to accept default "admin" / no pssword]> admin
Enter the value for the domain_name operand]> developer
Enter the admin password [Enter to accept default of no password]> ******
Enter the admin password again> *****
Enter the master password [Enter to accept default password "changeit"]>
Using ....

GlassFIsh起動

[glassfish@localhost]$ .asadmin start-domain

GlassFish管理コンソールへログイン

下記のURLから管理コンソールへログインできるかを確認。
http://loalhost:4848/

GlassFishMod_JK用のスレッドプールを作成

[構成]-[スレッドプール]を選択し、[新規]を選びます。
スレッドプールを新規に作成できる画面が表示されるので、
下記の内容を設定して、[OK]で、スレッドプールが作成されます。

名前:ajp-thread-pool
最小スレッドプールサイズ:2
最大スレッドプールサイズ:200

GlassFishMod_JK用のネットワークリスナーを作成

[構成]-[ネットワーク設定]-[ネットワークリスナー]を選択し、[新規]を選びます。
ネットワークリスナーを新規に作成できる画面が表示されるので、
下記の内容を設定して、[OK]で、Mod_JK用のネットワークリスナーが作成されます。

名前:ajp-listener
プロトコル:ajp-listener
ポート:8009
JK リスナー:チェックボックスをチェックします。
スレッドプール:ajp-thread-pool