作成日:2001年10月15日、更新日:2005年06月02日 作成:鷹の巣

バーチャルホストの動作を AN HTTPd を例にドメイン名(サブドメイン名)により、別のディレクトリのファイルにアクセスさせる方法を述べます。


バーチャルホストの動作テスト用ウェブページ

通常は、名前からして、ドメイン名(サブドメイン名)のホスト名の部分により、行われることが多く、既に、www1.example.com や www2.example.com により、別のディレクトリの index.html にアクセスされている方もおられると考えます。 WebサーバーAN HTTPdバーチャルホストいとのページさんのバーチャルホスト1にもそのように書かれています。 このウェブページでは、AN HTTPd のバーチャルホスト機能を利用して、ブラウザに入力したドメイン名(サブドメイン名)の異なるホスト名により、 別のディレクトリの index.html ファイルにアクセスさせる方法を述べます。使用したバージョンは、AN HTTPd 1.36b です。 ( Apache でもバーチャルホスト機能で同様のことが出来ますので、AN HTTPdでもアクセス出来ることを確認しました。) Apacheの設定例は、Googleで検索して下さい。

下記のリンク先をクリックして、ブラウザのアドレス欄を見て下さい。

バーチャルホストではない通常のユーザーウェブページ

バーチャルホストの動作テスト1用ウェブページ とそのユーザーウェブページ1

バーチャルホストの動作テスト2用ウェブページ とそのユーザーウェブページ2

以下に設定例と設定手順を示しますが、くれぐれも自己責任にて慎重に落ち着いて対処して下さい。 尚、レジストリエディタ(regedit.exe)にて、HKEY_LOCAL_MACHINE\Software\AnHttpd\default\VirtualHost以下のレジストリデータを自己責任で変更する度胸のない方は、以下の方法は、実施しないで下さい。 又、以下に示します設定手順と設定例全てをご熟読の上、実施して下さい。使用したバージョンは、AN HTTPd 1.36b です。 以下の操作手順は、Windows 2000 のものです。その他のWindows を使用されている方は、プロセスの終了は、「ctrl」+「alt」+「del」キーの同時押し下げにて、行ってください。

実施するに当たって

以下の不具合現象が生じる場合があります。現在、引き続き原因を調査しております。 このウェブペーシと同様の方法で、「バーチャルホスト」を実施されました方は、同様の不具合現象の発生の有無にかかわらず、私までご連絡をお願します。(アンケートは、このウェブペーシの一番下にあります。お手数をお掛け致しますが、宜しくお願します。)
  1. 不具合の現象
    設定変更後の再起動に失敗して、「Winsock error 10092:サーバソケットを作ることができません。TCP/IPプロトコルをインストールして下さい」というエラー表示が出て、デスクトップ画面右下のアイコンが消え、プロセスが停止する。主記憶上には、httpd.exe が一つ残ったままになる。

  2. 検証結果
    Windows 2000 professional bild 2195 をサーバー機以外の2台のパソコンにインストールし、実施してみました。 サーバー機(デスクトップ形自作機)と他の1台のクライアント機(フルタワー形自作機)では、同じエラーが発生しました。 他の1台のクライアント機(ノート形IBM製)ではエラーが発生しませんでした。 従って、サーバー機以外のクライアント機2台の比較を行うことにしました。

  3. 比較の条件

    1. AN HTTPdは、Ver.1.37dをインストールし、バーチャルホストを有効にし、後は、「バーチャルホスト」タブのみ変更し、他は初期設定のままとする。
    2. LANの設定は、TCP/IPのみとし、クライアント機2台とも設定を同じにする。http://sakaguch.com/SetWin2Knet.htmlに示していますクライアント機用の設定になっております。
    3. 管理ツールのサービスから開始しているサービスとその種類(「自動」等)をクライアント機2台とも同じサービスにする。
    4. 管理ツールのコンピュータの管理のシステム情報のソフトウェアの環境の環境変数は、2台ともほぼ同じであることを確認する。
    5. すべて管理者権限で、AN HTTPdを実行する。
    6. 変更後は、必ず再起動して、サービス内容が同じであることを確認して、AN HTTPd を実行する。

  4. 以上の処置を実施しても尚、変化は、ありませんでした。クライアント機(フルタワー形自作機)では、同じエラーが何度も発生しました。クライアント機(ノート形IBM製)ではエラーが1回も発生しませんでした。

  5. エラーが1回も発生しない場合が検証できましたので、原因は、不明のままですが、Windows 2000 の不具合のような気がします。 この問題は、2002年2月10日に解決しました。この原因は、Windows 2000 の「Windows update」 の「製品の更新」において、「重要な更新」または、「修正プログラム」のインストールの失敗により生じます。 (ある一時期、「Windows update」が何度行っても正常に出来ない時がありました。こまめに「Windows update」を行っていた方には、この不具合が出る可能性が高いです。)Windows 2000 をクリーンインストールし、再度、Windows 2000 の「Windows update」 の「製品の更新」をまとめて、正常に実施すれば、この症状は、なくなります。 サーバー機(デスクトップ形自作機)とクライアント機(フルタワー形自作機)とクライアント機(ノート形IBM製)のWindows 2000 professionalとクライアント機(ノート形Acer製)の Windows 2000 XP Home Edition の合計4台で、エラーが発生しないことが確認出来ました。

  6. 不慮の不具合現象にあっても的確に対処出来ます様、下記の設定手順で実施して下さい。


設定手順

  1. AN HTTPd がいつでも起動出来る様、デスクトップ画面に実行ファイル( httpd.exe )のショートカットのアイコンを置いて下さい。

  2. Windows 2000 をご使用の場合は、AN HTTPd でサービス動作(デーモン動作)を切って下さい。又、Windows のデスクトップより、「スタート」?「設定」?「コントロールパネル(C)」?「管理ツール」?「サービス」にて、AN HTTPdのサービス(デーモン)を無効にしておいて下さい。

  3. これで、AN HTTPd がいつでもデスクトップで簡単に起動と停止ができるようになった筈です。

  4. 設定変更操作を行って「OK」か「適用」押しボタンを押した場合に、下図の様な再起動メッセージが表示されます。
    再起動メッセージ表示

  5. ここで、「OK」押しボタンを押す前に、タスクバーで右クリックし、タスクマネージャを起動し、httpd.exe の表示位置を確認します。 httpd.exe は、一個だけ表示されて、他の種類のWebサーバーが起動していないことを確認して下さい。

  6. 次に「OK」押しボタンを押すとAN HTTPd が再起動し、下図の様な「ソケット作成失敗のエラー」が発生する場合があります。
    ソケット作成失敗のエラー表示
    もし、不幸にして、このエラーメッセージが出ましたら、すかさず「OK」押しボタンを押します。 (私のネットワークの設定は、こちらのローカルエリア ネットワーク(LAN)接続の設定例様な簡単な設定になっているにもかかわらず、エラーメッセージが出ました。) このエラーメッセージが出ない場合は、項9へ行って下さい。

  7. デスクトップ画面右下の AN HTTPd のアイコンが消えていても、 httpd.exe のプロセスは、主記憶上に残っています。 この状態では、 httpd.exe のプロセスは、動いていませんので、先ほど起動しておいたタスクマネージャで確認して、 httpd.exe のプロセスを終了させます。 (アイコンが消えていなくてもプロセスを一旦終了させた方が良いと考えます。) 又、 httpd.exe が二重起動している場合も考えられますので、必ず、全ての httpd.exe のプロセスを終了させます。

  8. デスクトップ画面のショートカットのアイコンから、AN HTTPd を、早速起動して下さい。 起動後は、設定内容も反映されていて、以降正常に動作し続けます。異なったドメイン名(サブドメイン名)により、異なったディレクトリのindex.html ファイルにアクセス出来ることをブラウザにて確認して下さい。

  9. 項2で切ったサービス動作(デーモン動作)を復帰させます。

  10. 上記以外のエラーが発生しましたら、AN HTTPDゲストブック/コメント集 全文検索(バーチャルホスト)にて解決して下さい。


設定例

1. 一般タブの設定図(全体)

バーチャルホストにチェックマークを入れ、「バーチャルホスト」のタブをクリックします。

オプション/一般設定の一般タブの設定図(全体)

バーチャルホストとは、全く関係がありませんが、左記の場合は、perl の拡張子の関連付けを行っています。(perl の実行プログラムは、フルパスで指定する方法もあります。)perl の拡張子の関連付けについては、Ken's Home Server Worldさんの拡張子の関連づけをご参照願います。

2. バーチャルホストタブの入力設定図

オプション/一般設定のバーチャルホストタブの設定図

「追加」押しボタンを押して、上図の様にホスト名とドキュメントルートを入力します。

オプション/一般設定のバーチャルホストタブの入力設定図

ホスト名には、「*」(ワイルドカード)は、絶対に入れないで下さい。元々ホスト名部分で機能するところに無理矢理フルドメイン名を入れている訳ですから、ここに「*」を入れますと全てのフルドメイン名という解釈になり、全てのフルドメイン名がそのドキュメントルートになります。(バージョンは、AN HTTPd 1.36bにて確認)例えば、上図の例で、ホスト名 www.sakaguch.com を*.sakaguch.com にしますと、どんなドメイン名(サブドメイン名)でアクセスしてもドキュメントルートは、 X:\WWW\public_html になってしまいます。

3. 一般タブの設定図(エイリアス設定)

オプション/一般設定の一般タブの設定図(エイリアス設定)

プルダウンメニューから、バーチャルホスト名を選択して、ここのバーチャルホスト名ごとの「/~usenameのエイリアス」仮想パスには、ドキュメントルートからの相対パスを設定して下さい。上記の/~takanosuのドキュメントルートは、
X:\WWW\Public_html\takanosu
になり、http://sakaguch.com/~takanosu/でアクセス出来ます。元々このような長ったらしいURLにならない様、ドメイン名(サブドメイン名)でアクセスして頂く訳です。

目次▲頁先頭