つうか, やり方は, 実際にはパッケージ付属の html文書に非常に詳しく載っているので, 別に俺がわざわざ説明するまでもないのです. とくに, 1.3.4の文書は 1.3.3に比べて, 問題の機能にかんしての説明が判りや すくなっているので, まあ, 読めば判るんですけどね. でも, ドキュメントが判りやすくなったというだけでも, 1.3.4を取って来る価 値はあるかも.
以後, apache をインストールしたディレクトリ(configure の PREFIX )を $APACHE と表記します. つまり, 設定ファイルは $APACHE/conf/httpd.conf と書くわけです.
問題の機能は, $APACHE/htdocs/manual/vhosts/index.html から辿れます. このリンクは, デフォルトの prefix を使って apache1.3.4 を すでにインストールしている場合は, そのままつかえます. そうでないと, 404 です. でも, apache を使ってみ ようと思って, この文書をセーブして off line で読む人には, 便利でしょう.
それでは始めましょう.
apache 1.3 系を既に使っている人は, 別に 1.3.4でないといけな いということはないのです. が, とりあえずhttpd をインストールしてくれないと始まらないんでして. 今からインストールする人は, 何かといろいろ機能があった方が面白いので, cofigure のオプションは --enable-module=most --enable-shared=max としま しょう. インストール先とかに, とくに不満のあるひとは, --prefix=/hoge とか してくれ.
インストールするまえに, まえから httpd を使っている人は, まえのを横へど けておこう. そして, make && make install で, できあがりである.
1.3.3は 設定ファイルが httpd.conf 以外に access.conf とか srm.conf とか あったが, それがウザイという評判が立ったらしく, 今回は httpd.confだけに なっている. 確かに, わしも httpd.conf と srm.conf で矛盾する設定を書いた りしたこともあるので, 確かにこの方がいいかもしれん. しかし, そのおかげで httpd.conf は殺人的に長い. わしの設定で 919行である から, わりかし鼻血かも. #include<access.conf> とかできるといいのにな. だったら自分でそうしろって?ごもっとも.
べつに, enabe-moduel=most しなくても, virtual host は使えるようになり ますので, いいんですけど, せっかくですからそうしときましょう. proxy とかにできたりしたら, おもろいやん?
それでは設定じゃ.
<Directory> Options FollowSymLinks AllowOverride AuthConfig </Directory> NameVirtualHost 192.168.0.1 <VirtualHost 192.168.0.1> DocumentRoot /home/yuji/public_html ServerName _default_ </VirtualHost> <VirtualHost 192.168.0.1> DocumentRoot /usr/local/apache/htdocs/manual ServerName hoge.zabi </VirtualHost>これで, http://hoge.zabi で apache のマニュアルが見れ, それいがいは, public_html をみせるというわけだ. 深く考えなければ, 一見, いろんなサーバがあるように見える. でも, IP アド レスは 192.168.0.1 ひとつしか使ってない. ネームサーバのデータベースに は cannonical name で登録した. おっと. 大前提を忘れていたが, 自由になるネームサーバが無いと, この技は使 えないかもです. /etc/hosts だけでも行けるかもしれないけどね. 実験してな いから, わしは知らんのだが. 興味もないし. 実はネームサーバがなくても大丈 夫. くわしくはこちら. (*)
それでは, 使いたい別名を, ネームサーバに登録しましょう. なんせ, せっかく「このなま えで接続してきたら, このディレクトリをみせたろ」とか企んでいても, その名前を IPアドレスに変換できないと通信できないからな. 名前は, A レコードでも CNAME レコードでも, 何でもいいみたいじゃ. それで, ネームサーバにデータベースを読み直させる. これは named にシグナル 1 を 送信すればいい.
これで, 呼ばれた名前ごとに違うディレクトリが見えるようになるはず. いや, もちろん, そのディレクトリが無いとダメですがね.
関係無いですが, apache の設定ファイルは html じみているので, ブラウザ, つうか navigator が勝手に tag だと思いやがって, 画面に出て来ないので, これを表示させるのにちょいと苦労しました. わしは W3C のサイトから持って来た html 4.0 spec を参照して(それに man ascii もね) ascii ナマ書きすることで解決したのだが, こういう情報は, チマタの html本には載っているのでしょうか. それにしても, とりあえず navigator では正しく表示されるようになった (View Page Source すると, html を parse するアルゴリズムが若干見える?) . しかし, w3 のパッケージをどっかにやっちまったので, emacs/w3 で, どう表示されるのかわからない. lynx では正しく表示された.