サイトマップ | お問い合わせ  | ID  PASS 

SmartSection is developed by The SmartFactory (http://www.smartfactory.ca), a division of INBOX Solutions (http://inboxinternational.com)
ۡ롼 > 裏番町通信 > 仮想専用サーバ構築 > Apache > バーチャルホスト運用時のゴースト現象を回避する
バーチャルホスト運用時のゴースト現象を回避する
投稿者: Admin 掲載日: 2009-5-19 (4082 回閲覧)
ApacheのUserDir機能を使ってみんなのホームページが公開できるようにしたのですが、名前ベースのバーチャルドメイン機能を使用しているためにゴースト現象が発生してしまいます。UserDirを指定すると、〜(チルダ)記号を用いて個別ユーザーのフォルダへアクセスできるようになり、http://example.com/~userでホームページを公開できるのですが、適用範囲がバーチャルホスト全体になってしまうため、http://virtual.com/~userでも同じページが表示されてしまうのです。これではまずいということで、httpd.confではなくバーチャルホストの宣言にて、UserDirを使うドメインと使わないドメインを設定します。

● 特定のドメインだけチルダアクセスを許可する場合
[root@example ~]# vi /etc/httpd/conf/httpd.conf ← 環境ファイルを開く
    :
    :
<IfModule mod_userdir.c>
    :
UserDir disable ← 行頭の#を消去(UserDir機能を無効にする)#UserDir public_html ← 行頭に#を追加
</IfModule>
    :
    :
<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/html
    ServerName example.com
    ServerAlias www.example.com
    UserDir public_html ← このホストへのチルダアクセスを許可
    UserDir disabled hanako ← 例外(hanakoさんのディレクトリへはチルダアクセス不可)
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin webmaster@virtual.com
    DocumentRoot /home/virtual
    ServerName virtual.com
    ServerAlias www.virtual.com
</VirtualHost>
:wq ← 設定が済んだら保存して閉じる

● Apacheを再起動して設定を有効化
[root@example ~]# service httpd reload ← Apacheを再起動
httpd を再読み込み中:                                      [  OK  ]
これでexample.comのみチルダアクセス可能となり、ゴースト現象は発生しなくなります。例外ユーザーの設定は不要であれば省略します。

● 特定のドメインだけチルダアクセスを許可しない場合
UserDir機能が有効な環境で(htpd.confは「#UserDir disable」「UserDir public_html」)、以下のように設定します。
<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/html
    ServerName example.com
    ServerAlias www.example.com
    UserDir disabled hanako ← 例外(hanakoさんのディレクトリへはチルダアクセス不可)
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin webmaster@virtual.com
    DocumentRoot /home/virtual
    ServerName virtual.com
    ServerAlias www.virtual.com
    UserDir disabled ← このホストへのチルダアクセスを許可しない
    UserDir enabled taro ← 例外(taroさんのディレクトリへはチルダアクセスを許可)
</VirtualHost>
これでvirtual.comはチルダアクセスができなくなります。例外ユーザーの設定は不要であれば省略します。

※ バーチャルドメイン機能使用時のメインホスト
名前ベースのバーチャルドメイン機能を使用するときは、メインホストもバーチャルホストとして設定しなくてはなりません。最初に記述したホストがメインホストとなり、IPアドレスでアクセスした際に表示されます。
  この記事を PDF フォーマットで見る 記事を印刷する 記事をメールで送信

良く読まれた記事 ディレクトリアクセス時に検索するファイル名を追加する
メインメニュー
大橋デザイン室