外部からのアクセスを制限する
インターネットで公開されているWebサーバーは、不特定多数からリクエストを受け付け、レスポンスを返すのが仕事です。しかし、学習目的用のテストサーバーにおいては、正常にアクセスできるのは自分だけで十分です。万が一にもインターネットを通じて不特定多数から自由にファイルが閲覧できてしまうことがあっては問題ですからね。
したがってテスト環境においては、適切な設定をすることにより、インターネットからのアクセスを遮断しなければなりません。一般的な環境では、ルータやファイアウォールにてブロックされるようになっていることが多いとは思いますが、念のため必ず設定しておきましょう。
ここでは、Apacheの設定ファイルであるhttpd.confを修正することにより、外部からアクセスされないようにする方法をご紹介します。httpd.confについてわからない方は、このカテゴリTOP、Webサーバーの設定ページに記載していますのでそちらを先にご覧ください。
当サイトに記載されているものは、全て学習目的のローカルテストサーバー向けです。その他の用途には適切でない可能性もありますのでご注意下さい。
外部からのアクセスを制限する設定方法
ここでは二つの方法をご紹介します。一つ目の方が簡単ですが、二つ目の方が(ちょっと難しいですが)より利便性が高い方法です。お好みの方で設定してみてください。
MAMPをお使いの方
MAMPをお使いの方は、方法1はトラブルのもとになる場合があるので推奨しません。このページ下部の、[ 方法2- Order,Deny,Allowディレクティブを修正する ]の方をお試しください。
方法1-Listen ディレクティブを修正する
httpd.conf内に、下記のように表記されている部分があると思います。
これを、以下のように変更します。赤い文字が追加する部分です。
(かならず半角で入力してください)
Listen 127.0.0.1:80
[ # ] をつけることで、初期状態をコメントアウトして、新しい設定をしているという訳です。
この設定により、このサーバは、127.0.0.1、つまりローカルPCでなければアクセスできないようになります。
方法2- Order,Deny,Allowディレクティブを修正する
[ 方法1 ]は非常に簡単でしたね。PCを1台でお使いの方には簡単なのでいいでしょう。しかし[ 方法1 ]は、LAN上にある別のPCからの接続をも拒否してしまうため、複数のPCを使う環境では不便なこともあります。Webデザインの学習中はブラウザの表示チェックをよくしますから、同一LAN上にあるWindowsとMacにて表示チェックできた方が便利ですからね。その場合の案をご紹介します。
まず、下記のように記載されている部分を見つけてください。
上記のグレー部分はドキュメントルートで、環境によって異なります。このグレー部分のファイルパスを覚えておいてください。見つかりましたら、先ほどのファイルパスと同様のパスが記載されている、下記のような部分を見つけます。
~中略~
</Directory>
さて、見つかりましたか?該当部分をよ~く見ると、下記の太字部分のような感じに記載されている部分があるはずですかもしれません。※(2010/05/09/追記) 下記太字の部分がこのような表記で無ければ、この項目を飛ばし、次の項目の赤字のようにすればOKです。
~中略~
Order Allow,Deny
Allow from all
</Directory>
上記太字部分が今回のキモです。この部分は多少異なるかもしれません。これを下記のようにします。
~中略~
#Order Allow,Deny
#Allow from all
Order Deny,Allow
Deny from all
Allow from localhost 127.0.0.1
Allow from 192.168
</Directory>
赤で記載されたように変更します。 192.168とある部分は、プライベートIPアドレスの不変部分を指しています。プライベートIPアドレスはこれ以外にも考えられますが、通常のご家庭ではこれがほとんどでしょう。(もしこれ以外のプライベートIPをお使いであれば、ネットワークの管理者に訪ねてみてください)
これだけでも大抵は大丈夫でしょうが、今回設定した部分以外の、下記のような形式の部分全てを下記のようにしておくとさらに確実です。
~中略~
Order Deny,Allow
Deny from all
</Directory>


