OSXのApache2を起動するとユーザーのホームディレクトリ内のサイト(Sites)というディレクトリが勝手に公開されるようになる。例えばユーザー名が「monkey」であれば、ブラウザで以下のようなURLにアクセスすれば動作を確認できる。

http://localhost/~monkey
http://(サーバのIPアドレス)/~monkey
http://(サーバのFQDN)/~monkey

ユーザーディレクトリの公開はバーチャルホストに対しても有効で、気づかずにユーザーディレクトリを公開してしまっている。

[ユーザーディレクトリの公開停止]
まずApache2の設定ファイル(/etc/apache2/httpd.conf)を以下のように編集する。
(変更前)

Include /private/etc/apache2/extra/httpd-userdir.conf

(変更後)

#Include /private/etc/apache2/extra/httpd-userdir.conf

[ユーザーディレクトリの変更]
デフォルトではユーザーのホームディレクトリのサイト(Sites)というフォルダがユーザーディレクトリである。例えばホームディレクトリに「public_html」というディレクトリを作成し、これをユーザーディレクトリにするには、ユーザーディレクトリの設定ファイル(/etc/apache2/extra/httpd-userdir.conf)を以下のように編集する。
(変更前)

UserDir Sites

(変更後)

UserDir public_html

[ユーザーディレクトリの設定変更]
ユーザーディレクトリはユーザー毎の設定ファイルが読み込まれるようになっており、これを編集する。例えばユーザー「monkey」のユーザーディレクトリの設定ファイルは「/etc/apache2/users/monkey.conf」であり、デフォルトでは以下のような設定になっている。

<Directory "/Users/monkey/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

コメントを残す