連載
» 2000年12月01日 00時00分 公開

ApacheによるWebサーバ構築(1):Apacheについて知ろう (2/2)

[一志達也,株式会社東洋情報システム]
前のページへ 1|2       

Apacheの入手方法

 さて、それでは実際にApacheを入手し、使ってみたいと思ったらどうすればいいのだろうか。それにはいくつかの手段が考えられる。

1.インターネットからソースコードを入手

 まずはじめの方法は、インターネット上に公開されているApacheのソースコードを入手する方法である。この方法の場合、入手したソースコードを自分の環境(OSや利用するオプションなど)に応じて設定(configure)、コンパイル(make install)する。ここで紹介する方法の中では、最も面倒で問題の発生しやすい方法といえる。

 しかし、この方法の場合、ほかの方法にはないメリットがある。1つは、その時点で最新のバージョンを入手できること。もう1つは、自分の好みに応じてコンパイルオプションを設定し、思いどおりの環境を構築できることだ。ソースコードを入手するには、公式サイト(http://www.apache.or.jp/http://www.apache.org/)や、あちこちに用意されているミラーサイトを訪ねるといいだろう。

 慣れないうちは、この方法がとんでもなく苦難の道に思えるだろうが、何度か練習すれば、それほど難しく感じなくなる。本連載でも、第3回でソースコードからのコンパイル方法を紹介する。

2.インターネットからポーティングされたバイナリを入手

 この方法は、先ほどの方法に比べると圧倒的に簡単にインストールできる。なぜなら、自分の使う環境に合わせて、あらかじめコンパイルされているからだ。バイナリを入手してしまえば、あとはOSごとに用意されているバイナリのセットアップツールを用いてインストールすればいい。

 バイナリを入手する場所はOSなどによって異なるが、Sun Solarisの場合はSUNSITE(http://sunsite.sut.ac.jp/indexj.html)のhttp://sunsite.sut.ac.jp/sun/solbin/などを訪ねるといいだろう。そのほかのOSについては、ベンダのサイトや公式ページ上の関連プロジェクトページ(http://www.apache.org/related_projects.html)を訪ねてほしい。

 ただし、この方法とこの後に述べる2つの方法の場合、必ずしも現時点で最新のバージョンが使えるとは限らない点に注意してほしい。なぜならば、ポーティング作業や雑誌が出版されるまでのわずかな時間であっても、Apacheはどんどん進化しているからだ。それほど敏感に最新のバージョンを使う必要はないが、自分にとって有益な機能が追加されていないか、情報をチェックするくらいのことはしてほしい。

3.製品付属のバイナリを使う(Linuxの場合)

 筆者の知る限り、すべてのLinuxディストリビューションには、Apacheのバイナリとソースコードの両方が付属している。LinuxをOSとして使うのであれば、こうした製品付属のバイナリを利用するのも1つの手だ。大抵の場合、Linuxのインストールとともにインストーラでインストールできるから、ほかの方法に比べて最も簡単だといえる。

4.雑誌の付録などでCD-ROMを入手

 最後は、雑誌や書籍の付録CD-ROMから入手する方法だ。最近の雑誌や書籍は、CD-ROMを付属させるものが少なくない。そうしたCD-ROMにApacheが含まれていれば、それを使ってインストールすることができる。Apacheを入手するためだけだとすればコストがかかってしまうが、雑誌や書籍にはインストール方法まで説明されている。

Apacheに関する情報源

 ソースコードと同じく、常に最新の情報を入手しておくことも重要だ。Apacheに関する情報は、検索エンジンで検索すれば怒涛のごとくヒットする。何か困ったことがあれば、こうしたインターネット上の情報を検索するだけで、大抵の問題は解決できるだろう。

 ここでは、そうした情報の中でも必須といえる情報源を紹介しておく。

Apache公式ページ
http://www.apache.or.jp/(日本)
http://www.apache.org/(海外)

 いうまでもなく、Apacheの公式ページは最重要の情報源である。現在、日本におけるサイト運営は、日本Apacheユーザ会(仮)の有志によって行われている。海外のニュースもすぐに翻訳されて、日本のサイトに反映されているからありがたい。日本Apacheユーザ会ではコアメンバーの募集も行っているようなので、興味があれば応募してみてはいかがだろうか。

 先に紹介した日本Apacheユーザ会では、Apacheに関する意見や情報を交換するためのML(メーリングリスト)を有志によって運営している。興味があれば参加してみるといいだろう。

 ただし、単純に質問をするためだけに加入するのは感心しない。MLの参加者は皆ボランティアなのだから、相互に助け合う、ギブアンドテイクの精神が大切なのである。はじめは質問する側でも、いつかは回答する側に回る気持ち、回答に対して感謝する気持ちを大切にしたい。どうしても質問したいのであれば、せめて過去に同じ質問がなかったかを調べてからにしたい。過去のやりとりについては、Apache メイリングリストサポートページ(http://apacheml.ecc.u-tokyo.ac.jp/)に掲載されており、検索サービスも用意されている。よほど特殊なケースでもなければ、この検索サービスで同じような問題を見つけることができるだろう。

 JAPACHE(ジャパッチ)とは、Apacheとそれに関係するドキュメントを翻訳するプロジェクトで、インフォサイエンス社http://www.infoscience.co.jp/)がボランティアで行っている。

 このサイトに掲載されているのは、いうまでもなく日本語に訳されたドキュメント一式である。ここに掲載されているドキュメントを印刷すれば、Apacheの立派なマニュアルが一冊できあがる。新しいバージョンについても順次翻訳して掲載しているから、ときどき訪ねてみるといいだろう。

Apacheにできること

 冒頭でも述べたとおり、いまやWebサーバソフトウェアは、ただファイルを送信できるだけでは満足されない。高いレスポンス性能、質の高いサイトを素早く構築できる機能、低コストで安定した運用を行える品質、すべてを兼ね備えることが望まれているのだ。もちろん、これらを支えるのはハードウェアの役割でもあるが、ソフトウェアの占める役割も決して小さくはない。

 これまで説明したとおり、Apacheは高いレスポンス性能と、安定した品質を開発当初から掲げている。それでは、それらのほかに必要とされる機能について、Apacheはどのような答えを出しているのだろうか。ここでは2つの大きな機能的特徴を例に、Apacheの優れた機能の一部を紹介しようと思う。

CGI・SSI・SSLのサポート

 CGI(Common Gateway Interface)は、WebブラウザとWebサーバ上にあるプログラムの間で、値のやりとりなどをサポートする。この技術は、主にPerlで記述されたプログラムの実行に使われ、CGIを使ったプログラムのことをCGIプログラムと呼ぶ。CGIプログラムは、Apacheに限らずほとんどのWebサーバソフトウェアで実行できる。ちなみに、Apacheではmod_cgiによって実行される。

図4 SSIの例。body.htmlの中でheader.htmlとfooter.htmlを読み込むようにしておくと、3つのファイルを組み合わせて1つのWebページを構成する 図4 SSIの例。body.htmlの中でheader.htmlとfooter.htmlを読み込むようにしておくと、3つのファイルを組み合わせて1つのWebページを構成する

 SSI(Server Side Include)は、HTML中に埋め込まれた特別な命令を実行し、HTMLを動的に変化させるための技術だ。この技術を使うと、例えばWebページの上下部分を別のファイルで作成しておき、それを本体から読み込むことができる(図4)。複数のWebページで1つのパーツを共有できるから、Webページのデザイン変更が容易になる。

 CGIとSSIは、どちらも動的なWebページを構築する技術として非常にポピュラーな技術である。これに対し、SSL(Secure Socket Layer)は、HTTPによる通信を暗号化する技術である。SSLを使う場合、Webサーバとクライアント間の通信は、HTTPS(デフォルトのTCPポートは443)で行われる。この技術は、プライバシーや情報の保護のために多くのサイトで採用されている。

モジュールによる機能拡張

 Apacheが高機能を誇れる理由の1つが、モジュールと呼ばれる仕組みによって、容易に機能を拡張できることにある。動的なHTMLを出力するCOBOLプログラムを実行したければ、mod_cobolというモジュールを自分で開発すればいい。そうすれば、Apacheはさらに高機能になり、同じニーズを持つユーザーの役に立つのである。

 ただしほとんどの場合、新たにモジュールを作る必要はない。なぜならば、すでに多くのモジュールが公開され、ほとんどのニーズをサポートしているからである。モジュールに関する情報は、先に紹介した公式ページなどで得られる。

 ちなみに、モジュールを使うにはApacheのコンパイル時に宣言しておかなくてはならない。バイナリでインストールする場合には、使えないモジュールがあることに注意してほしい。

 残念ながら、ここでApacheの機能をすべて解説するわけにはいかないが、Apacheが単なるWebサーバソフトウェアではないことは理解できたと思う。現在のWebサイトは、単に静的なページを表示しているだけではない。ビジネス用途であろうと、一般消費者向けであろうと、Webサイトは1つのアプリケーションへと進化を遂げているからだ。

 情報の検索や商品の購買は当然のものになり、ページをカスタマイズしたり、以前の情報を記憶しているサイトも珍しくなくなりつつある。Webサーバソフトウェアは、ファイルを送信するための環境から、アプリケーションプラットフォームへと進化を余儀なくされている。Apacheは、そうした進化に後れをとることなく、むしろリードするだけの機能を備えているのだ。

だれもが認めるApacheの実力

 RDBMSで有名なオラクル社は2000年、彼らの新しいアプリケーションサーバ製品となるOracle iASを発売した。なにを隠そう、この製品のコアを支えているのがApacheなのである。彼らはWebサーバ部分にApacheを採用し、アプリケーションサーバとしてのモジュールを追加して製品を構成している。すなわち、PL/SQL(mod_plsql:補足1)やOracle Servlet Engine(mod_ose)といった、彼らの独自技術をApacheのモジュールとして開発しているのだ。この新しい製品は、来るべきOracle9i Application Server(補足2)にバンドルされる予定で、21世紀のオラクル社製品の中核をなすものと考えられる。

 オラクル社のような巨大ベンダに採用されたということは、Apacheの実力が認められたと喜ぶべきであろう。Oracle iASやOracle9i ASは、オラクル社の提供するほかの製品(ERPや開発ツール)とも密接な関係を持つだけに、これからますますApacheの注目度は上がり、Apacheの知識が欠かせないものになっていくだろう。

補足1 PL/SQLはオラクル社独自の言語。SQLを手続き型の言語に拡張し、サーバ側でのデータ処理を記述できるようにしている。オラクル社がこれまでに提供してきたアプリケーションサーバでは、PL/SQLで作成したストアドプログラムを実行し、動的にHTMLを生成させる方法が主流だったのである。もちろん、この方法はOracle iASでも有効で、mod_plsqlと呼ばれるApacheのモジュールを介して実行されるようになっている。


補足2 オラクル社の新しいデータベースOracle9i ASは、単なるRDBMSの域を越えた製品となる予定だ。それというのも、RDBMSとアプリケーションサーバが1つの製品として出荷されるからである。その布石となるOracle iASにApacheが採用されたということは、次に出荷される製品にも、当然Apacheの技術が使われるものと思われる。


次世代のApache(Apache 2.0)

 現時点(2000年11月23日)でのApacheの最新バージョンは、1.3.14となっているが、すでに次期バージョンApache 2.0の開発版が公開されている。Apache 2.0では、マルチスレッドの対応など、いろいろな新機能が盛り込まれる予定だが、リリース時期は未定となっている。いち早く新バージョンに触れてみたいという方は、Apacheの公式ページでApache 2.0の情報とソースを入手するといいだろう。

まとめ

 今回はApacheの概略を紹介してきた。まだApacheに触れたことがないという方であれば、最新バージョンにこだわる必要もないし、最初から難しく考える必要もない。まずはLinuxなどの環境を用意し、Apacheをインストールしてみることから始めよう。

 次回は、Webサーバの基礎について最低限の知識を紹介する。この連載が終わるころには、Apacheの設定を自分で行い、自分だけの手で1つのWebサーバを立ち上げられるようになっていただきたいと思っている。どうか最後までお付き合いいただきたい。


関連キーワード

運用管理


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。