商品スタッフII ヘルプ>ネットワーク版の管理>サーバの管理>インターネットサーバ |
※以下の説明は開発中のものです。現在は使用できません。ご了承ください。
ここでは、商品スタッフIIサーバをインターネットサーバに導入する方法について述べます。 このインターネットサーバとしては、以下を前提とします。
※Debian系Linux, Windows, Solaris, MacOSXでも動作するはずですが、手順は以下の説明とは若干異なるかもしれません。
サーバマシンにFirebirdをインストールします。 http://www.firebirdsql.org/の「Download」から インストールイメージをダウンロードします。 その際、いくつかの決定事項があります。
2.0.*あるいは2.1.*を選択します。特別な理由がなければ2.0.*を選んでください。 もし、2.1.*で動かしていたデータベースをそのまま使いたい場合は2.1.*を選びます。 2.1.*で動かしていたデータベースを2.0.*で動かすことはそのままではできません (変換することは可能ですが、非常に面倒です)。
64bitを選択できるのは、CPUが64ビット、かつOSが64bit対応OSの場合です。 CPUが64bitでもOSは32bitという場合がありえますので注意してください。
32ビットの場合は「Linux x86」です。 64bitの場合には「Linux AMD64」との記述になっていますが、これはAMDだけではなく、インテルのCPU でも同じです。全く同じアーキテクチャのことをインテルでは「EM64T」と呼称しています。
CS(Classic Server)かSS(Superserver)かの選択肢があります。これは常にSS(Superserver)を選択してください。
※Linux以外の場合にCSの選択肢しか無い場合はCSで結構です。
32bitのSuperserverではnon-NPTLかNPTLかの選択肢があります。 これはOSの中の「スレッド」の実装方法の違いで、non-NPTLは古い実装になります。 ここ数年のRedhat系列のOSではNPTLを選択すればいいです(※2003年リリースのRedhat 9はnon-NPTLです)。
確認するには(注意書きにもあるように)、
getconf GNU_LIBPTHREAD_VERSION
というコマンドを実行してみます。NPTLの場合は「NPTL 2.n.n」などという応答が返ってきます。
特にtar-ballやdebuginfoを選択する理由はありません。rpmファイルを選択します。
通常のrpmパッケージと同様に
rpm -ivh FirebirdSS*.rpm
などとしてインストールします。インストールと同時にサーバが起動するはずです。
ps ax | grep firebird
とすれば、fbguard, fbserverというプロセスが存在することが確認できます。
Windows上でFirebirdをインストールすると、sysdbaユーザのパスワードは必ずmasterkeyに設定されていますが、 Linuxはインターネットサーバとして使われることが多いため、インストールごとに異なるランダムなパスワードが 設定されています。
このパスワードは「/opt/firebird/SYSDBA.password」というファイルに記述されています。
※Firebirdは3050番ポートを通じてクライアントからのリクエストを受け付けます。 Linuxにファイアウォール設定等をしていない場合(あるいは3050番ポートへの外部からの接続 を拒否していない場合)には、誰もかれもがFirebirdに接続できては困るため、 このような措置が講じられているようです。 ですから、sysdbaのパスワードを「masterkey」などにしてはいけません。 ただし、同じマシン上で商品スタッフIIサーバを動作させる場合には、外部から3050ポートに接続できる 必要はありません。つまり、localhostからだけの接続で十分ですので、ファイアウォール等で3050番ポート を完全にふさいでしまえばこの限りではありません。 |
Firebirdはデーモン(Windows風の呼称ではサービス)としてLinuxサーバの起動時に自動的に起動します。 このための起動停止スクリプトに手を加えた方が良い場合があります。 これは「/etc/rc.d/init.d/firebird」というファイルです。
#から始まる行を無視して冒頭の
FIREBIRD=/opt/firebird FBRunUser=firebird pidfile=/var/run/firebird/`basename $0`.pid
の部分を
商品スタッフII ヘルプ>ネットワーク版の管理>サーバの管理>インターネットサーバ |
FIREBIRD=/opt/firebird FBRunUser=root pidfile=/var/run/firebird/firebird.pid
等に変更します(必要な場合のみです。変更しない方が無難ではあります)。
スクリプトを変更したら、
service firebird restart
としてFirebirdを再起動しておきます。
http://java.sun.com/javase/ja/6/download.html からJREのインストールイメージをダウンロードしてインストールします。
「JRE 6 Update *」を選択し、32bitの場合は「Linux」、64bitの場合は「Linux x64」を選択します。 「jre-6*.bin」か「jre-6*-rpm.bin」の選択がありますが、 rpmの方でよいでしょう。
sh jre-6*-rpm.bin
というコマンドでインストールを開始します。 途中で、ライセンス条項を閲覧するためにスペースの入力が必要になり、最後にyes/noの選択になるので yesを入力します。 あとは、rpmとして通常通りインストールが行われます。
JREは「/usr/java」にインストールされています。
cd /usr/java ls -l
としてみます。例えば以下のような表示がされます。
lrwxrwxrwx 1 root root 16 7月 18 2008 default -> /usr/java/latest drwxr-xr-x 7 root root 4096 8月 3 19:04 jre1.6.0_14 lrwxrwxrwx 1 root root 21 8月 3 19:04 latest -> /usr/java/jre1.6.0_14
複数のバージョンの異なるJREをインストールすることができるようになっていますが、 デフォルトとして使うJavaはdefaultからリンクされています(Windows風の呼び名では「ショートカット」)。 したがって、このJavaコマンドを「/usr/java/default/bin/java」として呼び出すことができますが、 「/usr/java/default/bin」をパスに指定すれば「java」だけで呼び出せるので便利です。
やりかたとしては「~/.bash_profile」に記述しておくなどの方法がありますが、説明はこの文書の範囲を超えます。
配布ファイルを展開して適当なディレクトリに置きます。
使用したいデータベースがある場合は、それを上のserver.jarと同じ位置に置きます。 ただし、gsdb.fdbを置く場合は、同じ種類のOSで使用していたものに限ります。 Windowsで使用していたgsdb.fdbを、そのままLinuxで使用することはできません。 この場合には、まずWindows上でバックアップを行って*.fbkファイルを作成し、 それを「gsdb.fbk」という名前でserver.jarの位置に置きます。
Windows上で手動でバックアップする場合は以下のコマンドです(Firebird2.0の場合)
C:\Program Files\Firebird\Firebird_2_0\bin\gbak -user sysdba -password masterkey gsdb.fdb gsdb.fbk
※注意:既にネットワーク版で使用されていたデータベースをバックアップして別のネットワーク版にて 使うことは、現在のところそのままではできません。 起動はしますが、それらの間で「サーバ識別子」が同じになってしまうため共存することができません (一つの端末パソコンの中で、二つのサーバを区別することができなくなる)。 このようなことをしたい場合はご相談ください。 |
ウインドウ環境が無いためサーバコントローラ画面は使用できません。 あらかじめserver.propertiesを設定しておく必要があります。 詳細はserver.propertiesの説明を参照してください。
多くの場合に必要になるのは以下の設定です。
現在のところ起動・停止スクリプトは用意していません。 起動はjavaコマンドを使い、停止はプロセスをkillすることで行います。
java -jar server.jar -headless
として起動します。二重起動はできません。 なぜなら、一度起動するとwebServerPort, rmiPortが占有されてしまうので、 同じポートを使用しようとしても失敗するからです。
-headlessはウインドウ環境では無いことを示します(コマンドライン環境)。 -headlessをつけると、サーバコントローラ画面は開かず、単にserver.propertiesファイル を読み込んでサーバを起動します。
※リモートサーバ操作の際の基本的事項ですが、 SSH等で一時的にログインして操作している場合は以下のようにコマンドの最後に「&」をつける必要があります。
java -jar server.jar -headless &
停止する場合は以下のようにしてください。
ps ax | grep java
として商品スタッフIIサーバのプロセス番号を取得します。 これを指定して
kill プロセス番号
とします。実際にプロセスが停止するまで時間がかかることがあります。 万が一停止しない場合は、
kill -KILL プロセス番号
としてください。
Linux上でもウインドウ環境(X Window System環境)があれば、 Windowsと同様にサーバコントローラ画面を用いることができます。 コマンドラインで、
java -jar server.jar
と起動するか、「servser.jar」をダブルクリックすれば起動します(ウインドウマネージャによる)。 ただし、サーバコントローラ画面が以下のように表示されてしまう場合があります。
この現象はJavaプログラムが適切な日本語フォントを見つけ出せないことに起因します。 以下は解決策の一つの例です。 必ずしもこれで解決するとは限らないため、「java linux 日本語 文字化け」等で検索して解決策を見出してください。
(JDKではなく)JREをインストールした場合です。この場合には、 「/usr/java/default/lib/fonts」というディレクトリが存在します。 そこに「fallback」というディレクトリを作成してその中に、システムにあるフォントへのシンボリックリンクを 作成します。
必ずしもシステムに「/usr/share/fonts/ja/TrueType/kochi-mincho-subst.ttf」というフォント が存在するとは限らないことに注意してください。
cd /usr/java/default/lib/fonts mkdir fallback cd fallback ln -s /usr/share/fonts/ja/TrueType/kochi-mincho-subst.ttf ln -s /usr/share/fonts/ja/TrueType/kochi-gothic-subst.ttf