Domino on FC6
出典: Fukudat
Lotus Domino Server 7.0.2 を Fedora Core 6 (FC6) で動かすまでのメモ. 実行時のLinuxは (uname -rm = kernel 2.6.20-1.2948.fc6 i386) であった.
目次 |
準備
(1) インストーラーを起動するために足りなかった以下のパッケージを追加導入する.
- compat-libstdc++-33
- compat-libstdc++-296
- libXp
yum を使う場合,
$ sudo yum install compat-libstdc++-33 compat-libstdc++-296 libXp
でOK.
(2) ノーツを実行するユーザを作成しておく.
$ sudo adduser -r notes
設定のときにログインするので,パスワードをつけておこう.
$ sudo passwd notes
(3) 本当に必要かどうかわからないが,/etc/security/limits.conf を編集して,notes が開くことのできるファイル数の上限を 20000 まで増やす. 次の行を加えればよい.
notes - nofile 20000
インストール
インストールメディアに入っている install スクリプトを root で実行する.
$ sudo path/to/linux/domino/install
あとは,いくつか質問に次のキーで答えてゆけばよい.
- TAB (提示されたオプションを受け入れて先に進む場合)
- SPACE (提示されたオプションを変更する場合)
- RETURN (ユーザ名やインストールパスなど,設定値をタイプインする必要がある場合)
- ESC (前のページに戻る場合)
ここでは,program directory を /opt/ibm/lotus (デフォルトのまま)に設定し,data directory を /home/notes/data (デフォルトは /local/notes/data)とした.
しばし待つと、インストール(というかファイルの展開)が終わる.
初期化
ファイルの展開が終わると,「notes でログインして /home/notes/data ディレクトリに移動し,/opt/ibm/lotus/bin/server コマンドを起動して設定せよ」というようなメッセージが出てくる.その通り実行するのだが,ちょっとだけおまじないが必要.
$ xhost + # セットアップがウィンドウを開く許可を与える $ su - notes # notes ユーザに切り替え $ cd /home/notes/data # データディレクトリに移動 $ export DISPLAY=:0.0 # DISPLAY変数をセット $ export LANG=ja_JP.UTF-8 # これがないと,セットアップの終盤でSEGVを喰らう $ /opt/ibm/lotus/bin/server # セットアップを起動
すると,ノーツのロゴウィンドウに引き続き,初期設定のウィザードが立ち上がる.指示に従って先に進めば完了.
もし途中で失敗するようであれば,データディレクトリにある notes.ini をそのバックアップ (notes.ini.数字) から復元してやれば,何度でもやり直せる.
うまくいったら,今度は同じ手順でサーバーを起動する.(後でboot時に自動で起動する方法を示すが,ここは手動で起動する方法)
$ cd /home/notes/data # データディレクトリに移動 $ export LANG=ja_JP.UTF-8 # たぶん必要 $ /opt/ibm/lotus/bin/server # サーバーを起動.セットアップと同じコマンド.
サーバーを終了するには,サーバーを起動した端末で exit または quit とタイプインする.
設定
PC にインストールされている Lotus Domino Administrator を使って設定を行う.手順は次の通り.
- サーバーの管理者idファイル(admin.id)と認証者idファイル(cert.id)をそのPCのノーツデータディレクトリコピーしておく.
- Lotus Domino Administrator を起動
- File->Security->Switch ID でユーザIDを admin.id に切り替える.
- File->Open Serverで,設定したいノーツサーバーを開く
- 普段使っているノーツIDをCertifyして,このサーバーで使用できるようにする.
- Configurationタブ->右のTools中のCertifyを選択.
- Certifiyer IDボタンを選んで,サーバーのcert.idを指定.OKを押してパスワードを入力.
- 次に,普段使っているノーツidファイルを選ぶ.
- 最後に,このサーバーの管理者権限を普段使っているノーツidに付与する.
- サーバーのdirectoryDB (names.nsf) を開く.
- All Server Documentsビューにあるこのサーバーのサーバー文書を開く.
- Securityタブを開き,Administrators の欄に普段使っているノーツユーザを入力する.
以上
デーモン化
サーバの起動・停止をスクリプト化しておく.
次の内容のファイルを /home/notes/bin/start-server におく.chmod +x するのを忘れずに.
#!/bin/sh
NOTES_USER=notes
NOTES_DATA_PATH=/home/notes/data
NOTES_PROG_PATH=/opt/ibm/lotus/bin
OUTPUT_LOG=/var/log/notes/$NOTES_USER.log
PATH=$PATH:$NOTES_DATA_PATH:$NOTES_PROG_PATH
LANG=ja_JP.UTF-8
export LANG
start() {
if [ `id -u` = 0 ]
then
echo "Run the Domino Server as the notes user ($NOTES_USER)"
exit 1
fi
if [ ! -x $NOTES_PROG_PATH/server ]
then
echo "Notes: Cannot access server command - exiting"
exit 1
fi
if [ ! -d $NOTES_DATA_PATH ]
then
echo "Notes: Cannot access notes data directory - exiting"
exit 1
fi
cd $NOTES_DATA_PATH
if [ -a $OUTPUT_LOG ]
then
cp -p $OUTPUT_LOG $OUTPUT_LOG.`date +"%m%d%y_%H%M"`
fi
mkdir -p `dirname $OUTPUT_LOG`
echo "Starting Domino 5 server ... "
$NOTES_PROG_PATH/server < passwd > $OUTPUT_LOG 2>&1 &
exit 0
}
stop() {
echo "Stopping the Domino 5 Server for Linux"
echo " ... waiting for shutdown to complete"
cd $NOTES_DATA_PATH
$NOTES_PROG_PATH/server -q < passwd > /dev/null 2>&1 &
count=0
NOTES_RUNNING=`ps -ef | grep /opt/ibm/lotus | grep -v grep`
while [ -n "$NOTES_RUNNING" ] ; do
sleep 10
count=`expr $count + 1`
echo " ... waiting "$count"0 seconds"
if [ $count = 7 ]
then
echo "Domino Server is still running after 1 minute"
echo " ... now for the ungraceful method"
for i in `ps -ef | grep /opt/ibm/lotus | grep -v grep | awk '{ print $2 }'` do
kill -9 $i
done
echo " ... Notes server TERMINATED"
exit
fi
NOTES_RUNNING=`ps -ef | grep /opt/ibm/lotus | grep -v grep`
done
echo "Notes server ended cleanly"
exit 0
}
usage() {
echo "This command should be named either \"start-server\" or \"stop-server\ "."
echo "Exiting."
exit 1
}
cmd=`basename $0`
case "$cmd" in
start-server)
start;;
stop-server)
stop;;
*)
usage;;
esac
/home/notes/bin/stop-server としてもリンクしておく.
$ cd /home/notes/bin $ ln start-server stop-server
これでノーツユーザで start-server, stop-server を実行すれば,ノーツサーバーの起動・停止ができる. 試しておこう.
$ su - notes # ノーツユーザに変身 $ /home/notes/bin/start-server # サーバーを起動 $ /home/notes/bin/stop-server # サーバーを停止
次に、/etc/rc.d/init.d/domino 登録するスクリプトを用意する.
#!/bin/sh
. /etc/rc.d/init.d/functions
NOTES_PROG_PATH=/opt/ibm/lotus/bin
NOTES_DATA_PATH=/home/notes/data
NOTES_SCRIPT_PATH=/home/notes/bin
case "$1" in
start)
echo -n "Starting Lotus Domino server: "
if [ -d $NOTES_DATA_PATH -a -f $NOTES_PROG_PATH/server ] ; then
su notes -c $NOTES_SCRIPT_PATH/start-server
fi
touch /var/lock/subsys/domino
;;
stop)
echo -n "Shutting down Lotus Domino server: "
su notes -c $NOTES_SCRIPT_PATH/stop-server
rm -f /var/lock/subsys/domino
echo
;;
restart|reload)
$0 stop
$0 start
;;
*)
echo "Usage: notes {start|stop|restart|reload}"
exit 1
esac
exit 0
うまく動くかどうか試してみよう.
$ sudo /sbin/service domino start $ sudo /sbin/service domino restart $ sudo /sbin/service domino stop
うまく動いたら,runlevel を変えたときに動くよう設定しよう.
$ for x in 3 5 ; do > (cd /etc/rc.d/rc$x.d; ln -sf ../init.d/domino S99domino) > done $ for x in 0 6 ; do > (cd /etc/rc.d/rc$x.d; ln -sf ../init.d/domino K99domino) > done
