|目次|手順 0|1|2|3|A|B|C|D|E|F|G|H| I |J|K|L|M|N|O|P|Q|
作成日:2001年06月01日、更新日:2004年02月02日 作成:鷹の巣無料のサブドメイン名(example.hn.org)を取得し、非固定IP(動的IP)アドレスの自宅WWWサーバー動作の確認手順を紹介します。
以下の説明では、ルータのプライベートIPアドレス(局所機番)を192.168.1.1 とし、
サーバをインストールしたマシンのプライベートIPアドレス(局所機番)を192.168.1.2 としています。
以下に示します方法は、OSに依存しない方法を提示しています。
この手順で、行うと問題点が明確になります。もし、不具合が出るようでしたら、「掲示板」にご遠慮なく書き込みをして下さいね。
注)インターネット上のWebサーバーの動作試験を行うには、
必ずホスト名をフルドメイン(FQDN)表記で、行って下さい。
目次
WWWサーバーを起動し、WWWサーバの設定をすませ、WWWサーバのドキュメントルートに自分のホームページ(index.html)を 置いておきます。 ホームページ(index.htmlファイル)を未だ作成していない場合は、The Web KANZAKIさんのホームページの自動生成で テスト用のホームページを作成して、ドキュメントルートのディレクトリに保存してください。
私の雛形ページをご利用して頂いても結構です。雛形ページのファイル名を「index.html」に変更して、保存して下さい。
WWWサーバを起動したマシンのブラウザ(WWWクライアント)から、確認する場合は、 http://127.0.0.1/ と入力して、 自分のホームページ(index.html)が表示されることを確認します。 (http://localhost/でも良いんですが、間違いのもとです。IP番号の直打ちでいきましょう。) 自分のホームページ(index.html)が表示されない場合は、以下の囲みの内容を再度ご確認願います。
-表D1- WWWサーバの自己診断(ループバック)テスト失敗時の確認事項
WWWサーバを起動したマシン以外のブラウザ(WWWクライアント)から、 確認する場合は、 http://192.168.1.2/ と 入力して、自分のホームページ(index.html)が表示されることを確認します。
-表D2- 内側(LAN側)WWWクライアント機からのテスト失敗時の確認事項
自分のグローバルIPアドレスを調べます。この確認くんをクリックしてみてください。(プロキシ(代理)サーバーを経由しないで下さい。) このサイトの上から3番目の項目の「現在接続している場所(現IP)」にあなたのグローバルIPアドレスが表示されています。 このグローバルIPアドレス(vvv.xxx.yyy.zzz)を控えておきます。
| クラスA | 10.0.0.0 ~ 10.255.255.255 |
| クラスB | 172.16.0.0 ~ 172.31.255.255 |
| クラスC | 192.168.0.0 ~ 192.168.255.255 |
外部のサイトより、TCP80番ポートを通して、自宅WWWサーバーへグローバルIPアドレスにてアクセス試験を行います。
外部のサイトよりアクセス試験を行います。下記URL欄に自サイトのグローバルIPアドレスを同様に入力し、「Go!」押しボタンを押して下さい。
注)TCP80番ポート以外でアクセスする場合は、例えば、TCP8080番の場合は、http://vvv.xxx.yyy.zzz:8080/と入力します。
下記の様にServer Status欄に200(アクセス正常)の文字がありますか。

アクセス正常な場合、
ルータの設定やファイヤウォールの設定等が正しく、外部のインターネット上から、自宅WWWサーバーがアクセス出来ています。
アクセス正常でない場合、
恐らく、ルータの設定やファイヤウォールの設定等に問題があります。
下表D3の確認事項をご確認願います。
(手順Cのポートスキャンで、80番ポートがopenになっていれば、必ずアクセス出来ます。)
アクセス正常な場合は、外部のブラウザからhttp://vvv.xxx.yyy.zzz/と自分のグローバルIPアドレスを入力すると、 自分のホームページ(index.html)が表示されます。ひとまず、Webページの公開に成功したことになります。 (ルータを使用している場合は、LAN内のブラウザから、http://vvv.xxx.yyy.zzz/ を実行しないで下さい。 ルータの機種によっては、ルータの設定画面(ユーザー名とパスワードの入力画面)が表示されます。)
英語が苦手の方は、同様の試験内容が、サーバー監視【無料】さんのport接続テスト(外部からのポート応答確認)でも一定時間内の利用回数制限がありますが、標準ポート選択で、HTTPテスト (80ポート)を選択すると、検査出来ます。
外部から見えない場合は、以下の囲みの内容を再度ご確認願います。
-表D3- 外側(WAN側)サイトからのグローバルIPアドレステスト失敗時の確認事項
サブドメイン名(example.hn.org等)やドメイン名(example.com)が正しく、IPアドレスに変換されていることを確認します。
下記のHostname欄にホスト名(example.hn.orgやwww.example.com等)を入力し、「Go!」押しボタンを押して下さい。
下記の様に項4で調べておいたグローバルIPアドレスが正しく表示されましたか。正常に表示できない場合は下表D4の内容を確認して下さい。

アクセス正常な場合、
念のため、前項の項5で、http://vvv.xxx.yyy.zzz/をhttp://example.hn.org/等に変更して、
アクセス試験を行って下さい。必ず、Server Status欄に200(アクセス正常)と表示される筈です。
アクセス正常でない場合、
下表D4の確認事項をご確認願います。
グローバルIPアドレスが正しく表示された場合は、外部のブラウザからhttp://ホスト名/と自分のホスト名を入力すると、 自分のホームページ(index.html)が表示されます。一応、Webページの公開に成功したことになります。 (ルータを使用している場合は、LAN内のブラウザから、http://ホスト名/ を実行しないで下さい。 ルータの機種によっては、ルータの設定画面(ユーザー名とパスワードの入力画面)が表示されます。)
-表D4- 外側(WAN側)WWWクライアント機からのサブドメイン名テスト失敗時の確認事項
以上のアクセス試験で、Webページの公開に成功したことになります。 非固定IPアドレスの方は、ダイナミックDNSサーバーのホスト名のIPアドレスを自動(Diceやスクリプト)で更新し、グローバルIPアドレス が変化しても、常にhttp://ホスト名/で、アクセス出来るようにする必要があります。Windows 版DiCE 設定例もご参照願います。
前項までのアクセスが、正常であれば、特に試験する必要は、ありません。 (下記のサイトが混んでいて、試験出来ない場合がありますので、アクセスできない場合は、時間帯を変えて、アクセスしてみて下さい。)
前項の検証で、正しくホームページが表示されていても、実際は、ルータでホームページのデータが折り返される場合もあります。 又、「Webページの公開に成功した」といっても本当に公開されているのだろうかと確信が持てないかも知れません。 念のために外部(WAN側)のサイトより自分のホームページ(index.html)にアクセスして表示しましょう。
以下のサイトは、自宅サーバー有志によるWWWサーバーの動作試験サイトです。 必ず、自宅サーバーが稼動しているグローバルIPアドレスと同じIPアドレスから、アクセスして下さい。 自宅サーバーですから、節度あるご利用をお願い致します。
| ホームページ名(敬称略) | 設定ページ | 制限 | 備考 |
|---|---|---|---|
| パソコンおやじ | WWWサーバのテスト | 30Kbyte以下(リンク先画像等は別々) | - |
| 自宅に手づくり発信局をつくろう | みえ~たぞ君 | - | - |
| 「鷹の巣」の自宅サーバー | 自宅Webサーバーアクセス試験 | 100Kbyte以下 | リンク先画像等は自サイトより直接アクセス。 |
| - | - | - | - |
上記の様に動作試験サービスを提供して頂けるサイトがございましたら、是非リンクさせて下さい。自宅サーバー用CGI(Common Gateway Interface)の質疑応答集もご一読して頂くと嬉しいです。
それでもアクセス出来たか確信の持てない方は、外部(WAN側)のプロキシサーバーより自分のホームページ(index.html)にアクセスして表示してみましょう。
以下の使用方法は、本来の使い方ではないのですが、外部のWebサイトより、視覚的にアクセスすることが出来ます。
これは、必ず試験して下さい。 LAN内のクライアント機のブラウザから、http://example.hn.org/等とホスト(サブドメイン)名を入力して、 自分のホームページ(index.html)が表示されることを確認します。 これは、WWWブラウザがホスト(サブドメイン)名をDNSサーバーにグローバルIPアドレスを問い合わせ、自宅WWWサーバがindex.htmlを インターネット上にデータを送出し、WWWブラウザがインターネット上よりデータを受信して、表示したことを意味します。 これで、自分のホームページ(index.html)が公開されたのと同時にLAN内のブラウザからもアクセス出来ました。 世界中のブラウザで、自分のサブドメイン名を入力しても結果は、同じです。
注)ルータを使用している場合、
ルータを使用している場合に、LAN内のブラウザから、http://example.hn.org/やhttp://グローバルIPアドレス/とホスト名を 入力すると、LAN内にプライベートアドレスしか存在しない為、宛先がLAN内でない要求パケットは、デフォルトゲートウェイに指定した ルータに送られます。 (換言しますと、LAN内でグローバルIPアドレスを認識出来るのは、ルータだけですから、ルータをデフォルトゲートウェイに指定する訳です。) ルータに送られたパケットは、名前解決されて、グローバルIPアドレスに変換されますが、これが自サイトのグローバルIPアドレスの場合、 ルータの機種によっては、これらのLAN内から来たバケット全てに応答し、ルータの設定画面(ユーザー名とパスワード入力画面)が 出るものがあります。これを防ぐには、色々な方法がありますが、一番簡単な方法としては、hosts ファイルを編集する方法と 外部の公開プロキシサーバーを利用する方法とがあります。
ファイル名「hosts」を検索します。(インストール方法時の設定により多少変わりますが、Windows 98 の場合、 C:\Windows 、Windows 2000 の場合、C:\WINNT\system32\drivers\etc等のフォルダにあります。 以下の説明では、このフォルダにて説明します。) Windows 98 の場合、hosts.sam ファイル(hostsのサンプルファイル)をコピーし、拡張子のないhosts ファイルに名前を変更した上で、 編集し、hosts.sam ファイルのあったフォルダに置いて下さい。
ドメイン名 example.com とフルドメイン名 www.example.com を hosts ファイルに登録します。 クライアント機がWindows 2000 の場合、C:\WINNT\system32\drivers\etc\hosts を以下のように編集する。
127.0.0.1 localhost
192.168.1.2 example.com www.example.com<--- この行を追加します。
注)
192.168.1.2 は、Webサーバー機です。又、上記の内容は、説明のために全角スペースとドットを含んでいますので、コピー&ペーストしないで下さい。
クライアント機より、http://example.com/ や http://www.example.com/ で、自宅サーバーのウェブページを見ます。
注)hostsファイルは、クライアント機で直にサーバー機のプライベートアドレスに変換される為、まず、ご加入のプロバイダに使用可能なプロキシサーバーがあるかどうかを調べてください。
検索エンジンで「プロバイダ名」「プロキシ」「サーバー」「proxy」「server」等を組み合わせてAND検索をすれば、プロバイダのプロキシサーバーが出てくると思います。 わからなければ、プロバイダにプロキシサーバー名とサービスポート番号を問い合わせて下さい。
ブラウザにプロキシサーバー名とそのサービスポート番号を設定します。 (全てのウェブページの閲覧がここで設定したプロキシサーバーを通して行われます。)
念のため、Windows 標準添付のブラウザであるIE(Internet Explore)のプロキシサーバーの設定例として ブラウザIE6.0(Internet Explore)のプロキシサーバーの設定例(Windows 95/98/Me/NT/2000)と ブラウザIE6.0(Internet Explore)のプロキシサーバーの設定例(Windows XP)を示しておきます。
ご加入のプロバイダのプロキシ(代理)サーバーが利用できない場合は、公開プロキシサーバーを利用することになります。
公開プロキシサーバーのプロキシサーバー名とサービスポート番号をご存知の方は、是非、掲示板まで、ご連絡をお願します。
注)公開プロキシサーバー以外のプロキシサーバーは、無断で使用しないようにしましょう。
(泥棒になりますよ。)
当たり前のことですが、インターネット上のプロキシサーバーを通して、Webサーバーにアクセスする訳ですから、自サイトのWebサーバーであっても、
http://192.168.1.2/やhttp://www/という様なプライベートアドレスやフルドメイン(FQDN)表記ではないホスト名では、アクセス出来なくなります。
プロバイダ(Yahoo!BBさん等)で、WWWサーバー用の標準サービスポート80番が使用出来ないか、Worm等の不正アクセスから守る為、 WWWサーバーを標準ポート80番以外で公開する方法について、示します。 ここでは、検索エンジン等への登録の都合により、トップページへのアクセスは、「http://example.com/」で、ポート番号を隠します。
まず、自宅PC道 別館「自宅サーバ道」さんの「テロワーム (sadmind,CodeRed,CodeRedII,Nimda) を回避する」をご参照願います。 サービスポートを8080番で公開するには、WWWサーバーの設定とルータのポートフォワーディングの設定を80番から、8080番に変更し、 「http://グローバルIPアドレス:8080/」で、外部からアクセス出来る様にします。
URL転送を利用し、「http://example.com/」のアクセスを「http://www.example.com:8080/」の様に転送設定を行います。 URL転送の詳細につきましては、ryujinさんのwebページの「ポート番号を隠す」に記載されています。
参考サイト:ryujinさんの情報交換室 「転送URLを試してみました」 - ryujin 2002/03/14- No.41
私見ですが、特殊なフレームを使用するとアクセスするポート番号を全て隠せますが、最初のトップページへのアクセスだけを隠すだけで 良いと考えます。 (トップページから各ページへのアクセスは、リンクをたどる訳ですから、ポート番号が表示されても利用者の便宜を損ねません。)
WWWサーバーエラーについては、いとのページさんのAN HTTPDエラーメッセージ集に記載されている内容をご一読願います。 また、AN HTTPdおよび Apache のログファイルの読み方については、WWWサーバーのHTTP Logファイルの読み方をご覧願います。
CGI の動作確認に関しては、上記のWWWサーバの動作確認が終了していれば、ローカル(LAN内)で動作確認が出来れば、 そのままインターネット上への公開出来ていますので、特筆すべきものは、何もありません。しかし、CGI は、サーバーに負荷をかけます。 掲示板などをサーバーに設置される方は、Tips For Better CGI Program を是非読んで下さい。CGIの質疑応答集も読んで下さいね。
CGI はディレクトリの別名を定義していない限り、Web サーバーのホームディレクトリ(ドキュメートルート)からの相対パスで呼び出されます。
例えば、OSがWindows の場合に、http://example.com/index.html のホームディレクトリが、
D:\WWW\public_html になっていると、実際には、D:\WWW\public_html\index.html のファイルがWeb クライアントへダウンロードされます。
CGIの場合は、D:\WWW\public_html\cgi-bin\BBS\wforum.cgi にあるCGI ファイルを実行するには、
http://example.com/cgi-bin/BBS/wforum.cgi で、Web サーバーを通して実行されます。
index.html のファイルよりwforum.cgi にリンクするには、<a href="cgi-bin/BBS/wforum.cgi">掲示板</a>とします。
CGIファイルを実行するには、perl.exe のコマンドラインにwforum.cgi 等のCGIファイルを指定します。
例えば、http://example.com/cgi-bin/BBS/wforum.cgi では、Web サーバーから、
perl.exe D:\WWW\public_html\cgi-bin\BBS\wforum.cgi がWeb サーバーより実行されます。ここにひとつ問題があります。
perl.exe へのパスが通っていない場合、perl.exe がWeb サーバーより呼び出されず、wforum.cgi のソースリストが表示されます。
perl.exe を呼び出すには、wforum.cgi等のファイルの先頭に「 #!/usr/local/bin/perl 」や「 #!D:\Perl/bin/perl.exe
」等の記述をして、perl.exe のファイルのあるフォルダ(ディレクトリ)を指定する必要があります。
AN HTTPDでは、「 D:\Perl/bin/perl.exe 」等のパス指定を済ませておけば、記述は不要となります。
Windows の場合は、下の囲みのようになります。
拡張子cgi の関連付けや環境変数path により指定されます。 wforum.cgi 等のファイルの先頭の「 #!/usr/local/bin/perl 」の記述は、無視して使用出来ます。 Windows で、Active Perl をインストールしますと、自動的にこれらの関連付けが行われます。 拡張子pl の関連付けは、行われませんので、エクスプローラより、「ツール(T)」-「フォルダ オプション(O)」-「ファイルタイプ」タブで、 関連付けを行う必要があります。詳細は、Ken's Home Server Worldさんの7、CGIの設定をご参照願います。
CGI ファイルから別のCGIファイルやPLファイルを呼び出して使用する場合には、この関連付けが機能しない為、注意が必要です。
呼び出す方のCGIファイルには、呼び出されるCGIファイルを絶対パスにて指定しなければなりません。
例えば、WebメールフォームでArGosoft Mail Serverをsendmailのようにして動作させるsendmail wrapperを利用した場合を示しますと、
sendmail wrapper:なおきの部屋[XOOPS版]のsendまね~る
Webメールフォーム:CGIROOM さんのメールフォームのWebMailer base64対応版のwmail.cgi
呼び出す方のwmail.cgiファイルには、呼び出されるsendmail wrapperのsendmane.exeファイルを
$send = 'D:/Perl/bin/Perl.exe D:/WWW/sendm/sendmane.exe'; # ディレクトリ名には、半角スペースを含まないこと。
の様に絶対パスで、指定する必要があります。
sendmail wrapperを使用すると、たいした改造をしなくてもWebメールフォームのCGIをそのまま使用することが出来ます。
Windowsユーザーでフォームメールで送信する場合は、Windows自宅サーバー用フォームメールの設定方法(総集編)やWindows用フォームメールの設定例(sendmane.exe編)をご覧下さい。
私は、サーバーに負担をかけない「mailto:webmaster@example.com?subject=表題&body=本文%0D%0A内容」を多用しています。
|▲頁先頭|