Kugelblitz

いつ何時誰の挑戦でも受ける!

Glassfish v4をCentOS6.4へインストール


GlassFish4.1が正式リリースされましたので、「GlassFish4.1正式版がリリースされたようなのでCentOSにインストール」も読んでみてください(2014/09/19)


自宅サーバーにGlassfish v4をイントールした際のメモです。JDKはインストールされていることが前提です。

インストール媒体取得

wgetでインストール媒体を取得しまし、unzipします。

# wget http://download.java.net/glassfish/4.0/release/glassfish-4.0-ml.zip
# unzip glassfish-4.0-ml.zip

解凍したディレクトリを、/usr/localへ移動します。

# mv glassfish4 /usr/local

動作確認

/usr/local/glassfish4/binへ移動し、サーバー(ドメイン)を起動します。

# ./asadmin start-domain domain1
Waiting for domain1 to start ...........
Successfully started the domain : domain1
domain  Location: /usr/local/glassfish4/glassfish/domains/domain1
Log File: /usr/local/glassfish4/glassfish/domains/domain1/logs/server.log
Admin Port: 4848
Command start-domain executed successfully.

無事起動しました。

管理者パスワード設定

次に管理者パスワードを設定します。最初の「Enter the admin password」は何も入力せずにEnterを押下します。

# ./asadmin change-admin-password
Enter admin user name [default: admin]>
Enter the admin password> 
Enter the new admin password> 
Enter the new admin password again> 
Command change-admin-password executed successfully.

設定した管理者パスワードでログインしてみます。

# ./asadmin login
Enter admin user name [Enter to accept default]> admin
Enter admin password> 
Login information relevant to admin user name [admin] for host [localhost] and admin port [4848] stored at [/root/.gfclient/pass] successfully.
Make sure that this file remains protected. Information stored in this file will be used by administration commands to manage associated domain.
Command login executed successfully.

リモートからWeb形式の管理画面にアクセスを有効化します。その後、サーバー(ドメイン)を再起動。

# ./asadmin enable-secure-admin
# ./asadmin restart-domain

ブラウザからhttp://[サーバーのアドレス]:4848/へアクセスし、管理画面の表示、ログインができることを確認します。

実行ユーザー変更

今の段階で、Glassfishはroot権限で実行されているのですが、これを一般ユーザー(glassfishユーザー)で起動するようにします。

ユーザーを追加し、Glassfishがインストールされているディレクトリの所有者を変更します。

# adduser glassfish
# chown -R glassfish:glassfish /usr/local/glassfish4/
# ls -l /usr/local/glassfish4/
合計 20
drwxr-xr-x.  2 glassfish glassfish 4096  5月 14 20:58 2013 bin
drwxr-xr-x. 11 glassfish glassfish 4096  5月 14 20:57 2013 glassfish
drwxr-xr-x.  4 glassfish glassfish 4096  5月 14 22:20 2013 javadb
drwxr-xr-x.  5 glassfish glassfish 4096  5月 14 22:21 2013 mq
drwxr-xr-x.  4 glassfish glassfish 4096  5月 14 22:20 2013 pkg

ユーザーをglassfishへ変更し、サーバー(ドメイン)を起動します。以降、rootで起動してしまうと、サーバーログの所有者がrootになってしまい、glassfishユーザーで起動したときにログへの書き込みが行われなくなったりするので注意が必要です。

[glassfish@localhost ~]$ /usr/local/glassfish4/bin/asadmin start-domain
Waiting for domain1 to start ...........
Successfully started the domain : domain1
domain  Location: /usr/local/glassfish4/glassfish/domains/domain1
Log File: /usr/local/glassfish4/glassfish/domains/domain1/logs/server.log
Admin Port: 4848
Command start-domain executed successfully.

本当は、初回のサーバー起動の前にユーザーを作ったほうがスマートですね。

この後、自動起動設定を行います。まず、/etc/init.dに、起動スクリプト(ファイル名はglassfish)を作成します。スクリプトの中身は以下ですよ。

#!/bin/sh
# Provides: glassfish
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start:3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: start and stop glassfish
# END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions

if [ -f /etc/sysconfig/glassfish ]; then
    . /etc/sysconfig/glassfish
fi

prog=glassfish
domain=domain1
ASADMIN="/usr/local/glassfish3/bin/asadmin"
START_OP="start-domain"
STOP_OP="stop-domain"
RESTART_OP="restart-domain"
DOMAIN_DIR="/usr/local/glassfish3/glassfish/domains"
DOMAIN_ARGS="--domaindir ${DOMAIN_DIR} ${domain}"
lockfile=${LOCKFILE-/var/lock/subsys/glassfish}
pidfile=${PIDFILE-/var/run/glassfish.pid}
SLEEPMSEC=100000
RETVAL=0
start() {
    echo -n $"Starting $prog: "
    daemon --user glassfish --pidfile=${pidfile} ${ASADMIN} ${START_OP} ${DOMAIN_ARGS}
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && touch ${lockfile} && cp ${DOMAIN_DIR}/${domain}/config/pid ${pidfile}
    return $RETVAL
}
stop() {
    echo -n $"Stopping $prog: "
    ${ASADMIN} ${STOP_OP} ${DOMAIN_ARGS}
    RETVAL=$?
    echo    [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
restart() {
    echo -n $"Restarting $prog: "
    ${ASADMIN} ${RESTART_OP} ${DOMAIN_ARGS}
    RETVAL=$?
    echo
}

rh_status() {
    status -p ${pidfile} ${prog}
}

# See how we were called.
case "$1" in
    start)
        rh_status >/dev/null 2>&1 && exit 0
        start
        ;;
    stop)
        stop
        ;;
    status)
        rh_status
        RETVAL=$?
        ;;
    restart)
        restart
        ;;
    *)
        echo $"Usage: $prog {start|stop|restart|status|help}"
        RETVAL=2
esac

この後、

# chkconfig --add glassfish

でサービス登録。

# chkconfig glassfish on

で起動時に自動起動するようにしておきます。
うまくいったかどうかは以下で確認できますよー。

# chkconfig --list | grep glassfish
glassfish       0:off   1:off   2:on    3:on    4:on    5:on    6:off
Pocket

他の記事