今日はMac歴8日目です。
ちょっとしたウェブアプリケーションをお試ししたり、
簡単なウェブプログラミングしたい時って、ありますよね。
最近のMacでは、ウェブサーバーApache2やPHPエンジンがハンドルされていますので、
テスト環境を構築して、ちょっとウェブプログラミングをやってみるのは、
割とお手軽でできます。
本格運用ではなく、ローカルサーバーとしてちょっとしたお試しの場合、
ほかの人やパソコンからは見えず、ウェブサーバーを自分にしか見えないように、
設定したいのですね。
ここでは、Mac OSにハンドルされているApache2のhttpd.confを設定して、
IPアクセス制限を加えることによって、自分のMacからしか接続できないようする方法を、
Macのど素人、Unixのプチ素人であるぉぅぇぃが自分用のメモも兼ねて、ここに残します。
Mac OS X Snow LeopardにハンドルされているApache2の起動に関しては、
下記の記事をご覧下さい。
→Mac OS X Snow LeopardでApache2ウェブサーバーを利用する
IPアクセス制限を設定するために、Apache2の設定ファイルを編集する必要があります。
設定ファイルのhttpd.confの場所は「/etc/apache2/httpd.conf」です。
しかし、このファイルは割と重要なファイルですので、
rootなどの高い権限じゃなければ、編集することができません。
Macでhttpd.confを編集するための権限設定の方法は、
下記の記事を参考してください。
→Mac OS X Snow LeopardのGUIでApache2のhttpd.confを編集/保存する
以上のことを踏まえて、ローカルパソコンにしか接続できないようにするための、
IPアクセス制限のための、httpd.confへの編集を簡単に説明します。
まず、httpd.confをお好みのテキストエディタで開いてください。
設定する箇所はhttpd.confファイル内の、
「<Directory "/Library/WebServer/Documents">」の前後です。
見つからない時は、「コマンド+F」などで検索してください。
そして、こんな感じに設定しましょう。
<Directory "/Library/WebServer/Documents">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
deny from all
allow from localhost
</Directory>
IPアクセス制限関連の部分は、
Order deny,allow、deny from all、allow from localhostの三行です。
細かい説明を省きますが、簡単に言えば、この三行の意味合いはこんな漢字です。
- Order deny,allow
- まずアクセス拒否(deny)の処理を行って、その後、特例として一部だけを許可(allow)する。
- deny from all
- すべて(all)、何もかも拒否(deny)する。
- allow from localhost
- ローカルホスト(localhost=自分のパソコン)からの接続を許可(allow)する。
こう設定すれば、このMac自身からしかウェブサーバーにアクセスできなくなります。
その他、誰かに自分のテストサーバーを見せたいのであれば、
「allow from {IPアドレスやドメイン}」のように設定すれば行けます。
さらに意味を詳しく知りたい方は、「httpd.conf deny allow」などで検索してください。
これらの設定をしたあと、Apache2を再起動して、変更を適用させる必要があります。
方法ですが、「システム環境設定」→「共有」→「Web共有」と、
先ほど起動した画面まで行って、チェックボックスをオフ→オンすれば、
サーバーを再起動させることになります。
詳しくは「Mac OS X Snow LeopardでApache2ウェブサーバーを利用する」をどうぞ。
ちなみに、この設定を行うと、Macの「アップル→システム環境設定→共有→Web共有」で
表示された青いウェブサイトURL、"http://aaa.bbb.ccc.ddd"が繋がらなくなります。
エラーメッセージはこんな感じ。
Forbidden
You don’t have permission to access / on this server.
それの代わりに、URLを"http://localhost/"にすれば、つながります。
ここで設定しただけで、よそのパソコンからウェブサイトにアクセスできなくなるが、
ユーザ個人サイトの設定を行ってないので、ほかのパソコンからアクセス可能です。
個人ウェブサイトにアクセス制限をするために、別途設定する必要があります。
設定ファイルは、先程のhttpd.confと同じ場所から、「users」を選べば、
その中に「{*ユーザID}.conf」のようなファイルがそれです。
↓Finderで見る個人ウェブサイト設定ファイルの場所
絶対パスを表記すると、「/etc/apache2/users/{*ユーザID}.conf」ですね。
ちなみに、このままだと、httpd.confと同様、権限の問題で設定できません。
「Mac OS X Snow LeopardのGUIでApache2のhttpd.confを編集/保存する」の手順で、
編集の権限を設定してください。
設定する内容も、先ほどhttpd.confに対する設定とほぼ同じです。
<Directory "/Users/{*ユーザID}/Sites/">
Options Indexes MultiViews
AllowOverride all
Order deny,allow
deny from all
allow from localhost
</Directory>
ちなみに、こちらは「AllowOverride all」を設定しています。
これは個人ユーザ領域の「.htaccess」による上書きを許すかどうかの設定です。
なぜこれを設定するかというと、Apache2設定ファイル側ではなく、
コンテンツフォルダの方で制御可能にしますので、いろいろ融通が効きます。
さらに詳しく知りたい場合は、「AllowOverride」や「.htaccess」を検索してください。
同じく、設定終えたら、ウェブサーバApache2を再起動させましょう。
「アップル」→「システム環境設定」→「共有」→「Web共有」をオフ→オンですね。
これで、Macのウェブサイトと同様、
個人ウェブサイトもほかのパソコンからアクセスできなくなります。
そして、Macウェブサイトと同じく、この設定を行うと、
「Web共有」で表示された個人サイトURL、
"http://aaa.bbb.ccc.ddd/~{ユーザ名}"で繋がらなくなります。それの代わりに、
"http://localhost/~{ユーザ名}"でユーザサイト領域にアクセス出来ます。
こんな感じで設定すれば、ほかの人に間違ってアクセスされることがなくなりますので、
思う存分自分のMacのウェブサーバーで、いろいろテストできるようになります。
良かったら、お試しください。
まあ、ウェブサーバやPHPのテストを使わない時は、
「システム環境設定」→「共有」→「Web共有」をオフしたほうが一番無難かもしれません。
関連記事:
- Mac OS X Snow LeopardでApache2ウェブサーバーを利用する
- Mac OS X Snow LeopardのGUIでApache2のhttpd.confを編集/保存する
- 初心者目線でMac OS 10.6のApache2でPHP試せるローカルサーバーを設定する