2001/01/25

■動機とか
 自宅にサーバーを立てよう!っちゅーことで、サーバーソフトを入れてみました。Windows系なのでIISでもいいんですが、会社のサーバーがこいつで、 散々お世話した(笑)ので、いい加減違うのもやりたいなーとApacheを選択。っていうか、むしろInternet標準だしな。以前仕事でIBM Http Serverは使ってましたが、純粋なApacheははじめてッス。緊張ッス。

 今回の目標的には、サーブレットが動く環境(いまんとこTomcatが有力)を作って、多少インタラクティブ(死語?)性のあるコンテンツを配信すること。 まぁ、コンテンツ作りが一番大変なのはわかってるので、最悪Apacheに慣れておければいいやって感じかな。

■初めの一歩
 まずは、Yahoo!JapanにてApacheをキーワードに検索。出てきたサイトのリンクをたどり総本山へ。ホントは日本語サイトに行きたかったけど、この時点ではあまり良さそうなサイトが見つからなかった。

■ダウンロードだっ!
 さっそくwin32版のページへ。ちなみにこっちの環境はWindows2000なり。さらにリンクをたどっていくとよく分からないがダウンロードパッケージに種類があるらしい。英文を流し読みするとどうもこのMSIというMicrosoftのインストーラーモジュールが無いとインストールできないパッケージというのを推奨しているらしい。ので、ダウンロードを試みるがちょうど例のMicrosoftの「DNSサーバー死んだらしい事件」最中であったため、結局ダウンロード出来ず。でも、このインストーラーを使うのはバージョン1.3.15以降らしい。現時点では1.3.14までしか見えないのだが。謎が謎を呼ぶ展開です。

 というわけでapache_1_3_12_win32.exe(3.0MByte)をダウンロードしてみる。ちなみに最新版のapache_1_3_14_win32_r2.exeは、r2って付いてたのでやめてみた。問題あったら後からバージョンアップすりゃ良いんじゃないの?ってことで。

■インストールだっ!
 ダウンロード完了したので、exeファイルを実行するとインストーラが立ち上がる。バイナリ版なので既にコンパイル済み。楽チンだナァ。標準インストールで何ごともなく普通に完了。Readme(英語)を表示して読む。なになに「ApacheはUNIXで最高のパフォーマンスが出るずら。」「Windows版はテストコードで問題ある可能性があるずら。」・・・ううむ。まぁ、そのうちLinuxでやることにでもしよう。ドキュメントはインストールディレクトリのhtdocs/manual下にHTMLドキュメントで入ってる。もちろん英語。インストールから実行までの手順を流し読みすると、あまり設定を変えなくてもこのまま立ちあがりそうな気がする(後に日本語ドキュメントを読んだら違ってることが発覚)。

■Apache、Windowsに立つ!?
 スタートメニューのプログラムにApache Web Server→Apache START等が登録されている。ので、Install Apache as a serviceを実行してみる<なんでだーっ!(ツッコミどころ)。ちなみにどっかにNT onlyと書いてあた気がしたけど、2000でも問題なく登録された。管理ツール→サービスで、サービスとして登録されていることを確認。登録名はApacheで設定は自動実行。しかし、まだ実行されてない様だ。ほえ〜?と思いつつ、実行してみる。・・・がすぐに失敗。なぜですか?

■ババンバ、バンバンバン。マニュアル読めよ!
 そういや、IIS動きっぱなしじゃ〜ん。駄目じゃんオレー、って感じで速攻でIIS停止して、もう一度起動にチャレンジするがやっぱ駄目。肝心のlogsディレクトリ下のerrorログは作成すらされていない様だ。仕方ないのでコマンドプロンプトから立ちあげると今度はメッセージが。「サーバー名を指定せよ!」とのことで、ようやくconf/httpd.confをいじる気になる。結局、いじるのね、これ。IBM Http Serverのときも、とってもお世話になりました。ServerNameディレクティブを探すと、やはりコメントアウトされてました。で、とりあえず、サーバー名を登録。

  ServerName localhost

起動すると今度は無事に成功。ちなみにドキュメントには「httpd.confのポート番号とかは設定してね」と書いてあったようです。

■ちょびっと設定変更してみた
 起動してみるとhtdocs/manual下がドキュメントルートになってる模様。とりあえずテスト用のHTMLファイルを置いて、そちらを見るように変更したい。そこでDocumentRootディレクティブを変更。ディレクトリ指定の最後には'/'とか入れるな、と書いてある。

  DocumentRoot "E:/www"

さらに<Directory>ディレクティブを指定。これで、ディレクトリの設定をすることが出来るようだ。

  <Directory "E:/www">
   ・・・(ここは既存の設定のパクリ)
  </Directory>

で、サービスを再起動させて試してみたところ、index.htmが表示されず、ディレクトリの中身がずらずらと・・・。。また、httod.confを調べて2個所を変更!まずはディレクトリで使用されるインデックスファイルにindex.htmを登録。

  DirectoryIndex index.html
       ↓
  DirectoryIndex index.html index.htm

次にさっき設定した<Directory>ディレクティブの中のOptionsからIndexesをはずす。これがあるとディレクトリの中が見えちゃうので。見せたい人は構わないけど。

  Options Indexes ・・・
       ↓
  Options ・・・

これで一応完了。あとは必要に応じて設定変更してけば、いい感じですなぁ。

(以上)