特集
2004/04/12 13:00 更新

特集:Xserveで構築するオープンソースJava (3/3)
データベースソフトにはMySQLを標準採用
Webアプリケーションといえば、データベース機能との連携が欠かせない。Mac OS X Serverには標準でMySQL 4が用意されている。MySQL 4の設定は、サーバ管理ツールではなく、MySQLマネージャを用いる。最初に起動すると、画面4のように標準ファイルのインストールが要求される。
画面4の状態でMySQL 4が起動するが、残念ながらGUIでデータベースを扱えるツールは用意されていない。MySQL 4でデータベース操作したりテーブル作成をするためには、mysqladminなどのコマンドを使い、操作することになる。
Java以外のオープンソース環境構成
ここまでJava環境について触れてきたが、もちろん、Java以外で構成されたアプリケーションもMac OS X Serverで動作可能だ。Mac OS Xには、言語環境として標準でPerlやPHP、Rubyなどのスクリプトが用意されている。
標準インストールでは、Cコンパイラなどの環境が含まれないが、OSパッケージに付属のX code Tools(CD-ROM)から、Cコンパイラを始めとする開発環境もインストール可能だ(画面5)。そのためオープンソースのソースコードを入手して、自らビルドして使う場合でも、問題となることがないはずだ。
GUIツールはMacOS上での操作に限られる、遠隔管理にはシェルを使う
ところでサーバの運用には離れた場所に設置し、リモートで管理することがほとんどだろう。Mac OS X Serverには、Admin ToolsというCD-ROMが付属しており、その中には、Mac OS X環境のクライアントからMac OS X Serverを管理できるツールが含まれている。GUIでサーバを管理したいのであれば、そのリモート管理ツールを使えばよい。
もっとも、Mac OS X ServerにはSSH2が標準でインストールされているため、コマンドラインからの操作で構わないならば、SSH2によるリモート管理でよいだろう。これならば、当然にクライアント側のOS依存がなく管理が可能だ。ちなみにMac OS X Serverには、Net-SNMPもインストールされている。サーバを監視したいのであれば、前述コラムのようにSNMPの利用も可能だ。
サーバ起動時の設定を行うSystemStarter
LinuxやFreeBSDでは、サーバーの起動時に/etc/rc/ディレクトリなどに起動用スクリプトを用意する。それに対して、Mac OS X Serverでは、SystemStarterという仕組みを使う。SystemStarterで参照されるディレクトリは、次の2つだ。
- /System/Library/StartupItems
システムに関する起動設定が含まれる。
- /Library/StartupItems
ユーザーが起動したい起動設定を格納する。標準では空だ。
たとえば、/System/Library/StartupItemsディレクトリには、ApacheやBIND、Cron、NAT、MySQLなどの各ソフトに対応するディレクトリがあり、その中に同名ファイルを置いたものが起動スクリプトになる。つまり、Apacheを起動する時のスクリプトは、/System/Library/StartupItems/Apache/Apacheという名前になる。
起動スクリプトには、StartService、StopService、RestartServiceの3つの関数を用意し、それぞれに起動時に実行したい内容、停止時に実行したい内容、再起動時に実行したい内容を記述する。その起動スクリプトの内容は、概ね次のようになる。
#!/bin/sh ./etc/rc.common StartService() { # 起動時のスクリプトを格納する } StopService() { # 停止時のスクリプトを格納する } RestartService() { # 再起動時のスクリプトを格納する } RunService "$1" |
また起動時スクリプトと同じディレクトリにStartupParameters.plistというファイルが必要だ。StartupParameters.plistは、付加情報を設定するためのファイルだ。たとえば、Apacheに関するStartupParameters.plistファイルは、次のようになっている。
{ Description = "Apache web server"; Provides = ("Web Server"); Requires = ("DirectoryServices"); Uses = ("Disks", "NFS"); OrderPreference = "None"; } |
Descriptionは説明文、Providesは起動する際の名前、Requiresは他に必要なサービス名、Usesは利用するサービス名、OrderPreferenceは起動時に順序が必要であるときに設定する順序名だ。
SystemStarterとして登録した(/System/Library/StartupItems/ディレクトリ、または/Library/StartupItems/ディレクトリに置いた)起動スクリプトは、SystemStarterコマンドを使って実行できる。たとえば、Apacheを起動する場合には、次のようにすればよい。
# SystemStarter start "Web Server" |
自らソースなどからアプリケーションをビルドした場合には、/Library/StartupItemsディレクトリに、/System/Library/StartupItemsディレクトリに保存されている内容を真似して起動スクリプトを用意するとよいだろう。
次期メジャーバージョンまでパッケージアップデート無料な点も際だつ
ここまでMac OS X Serverについて簡単に見てきたが、内容的にはBSDそのものだ。Mac OS X Serverは管理ツールが揃っているばかりか、標準で幾つかのアプリケーションがインストールされているので、すぐに使い始めることができる。そのため、通常利用であれば、特にソースからビルドしたりパッケージを新たにインストールしてサーバ構築をする必要もないだろう。
自らLinuxやFreeBSDをクリーンインストールし、Webサーバを構成したりJava環境を準備するのは手間がかかるものだ。特に現状でFreeBSD上のJava環境を構築するとなれば、Linux版のJDKのソースを入手し、パッチを当ててインストールという手順であり多少敷居が高い。それに対し、BSD上でオープンソースのJava環境が手に入るというメリットがあるわけだ。
また、標準でインストールされているソフトウェアパッケージのアップデートは、セキュリティホールへの対応を中心に最新のものへと無償で更新可能だ。サーバ管理ツールから「アップデート」を選択するだけでよい(画面6)。この点は、Linux陣営のレッドハットなどがパッケージメンテナンスにライセンス料を必要と踏み切っている昨今、運用コストに関わる大きな点といえる。パッケージメンテナンスをサービスとして各社が有償に踏み切る中、アップルコンピュータがサーバへ掛ける意気込みとして感じられる面だろう。
BSD上でJava環境を構築したい、しかし事例が少なくて今まではちゅうちょしていた。そのようなユーザーは、無理にFreeBSDで構築することを考えなくてもよいだろう。Mac OS X Serverであれば、操作性の点で馴染むことができ、何ら違和感なく運用していくことが可能だからだ。
関連記事

関連リンク



[大澤文孝,ITmedia]
Copyright © ITmedia, Inc. All Rights Reserved.