TOTAL:2726, TODAY:492

Apache2.0のディレクトリ設定(.htaccess)

PHPプログラムを作成していると、プログラムの途中でも動作を確認したくなることが多々あります。動作確認のため、*.phpファイルをWEBサーバのトップディレクトリ(私の場合、/mnt/www)に置いても構わないのですが、作りかけのプログラムを公開しているディレクトリに置くのも余りよろしくないので、ローカルLAN以外からは、アクセスできない特別なディレクトリを作ることにしました。

外部からアクセスできないディレクトリの設定

外部からアクセスできない動作確認用ディレクトリを作成するために、Apache2.0のサイト設定用ファイル/etc/apache2/sites-available/defaultを編集します。

#       DocumentRoot /var/www/
        DocumentRoot /mnt/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
#       <Directory /var/www/>
#               Options Indexes FollowSymLinks MultiViews
#               AllowOverride None
        <Directory /mnt/www/>
                Options FollowSymLinks MultiViews   <-- 変更①
                AllowOverride Limit                 <-- 変更②
                Order allow,deny
                allow from all
                # This directive allows us to have apache2's ....
                # in /apache2-default/, but still have / go to ....
                # RedirectMatch ^/$ /apache2-default/

順序が逆になりますが、変更②から説明します。変更②が外部からのアクセスを防ぐための設定で、Apacheのオーバーライド機能を使用します。すぐ下の「Order allow, deny」、「allow from all」とあるように、トップディレクトリ/mnt/www/は誰でもアクセス可能ですが、AllowOverride Limitとすることで、.htaccessがあるディレクトリのアクセス制限を変更することができます。具体的には、.htaccessの中身を次のようにすることで、.htaccessがあるディレクトリは内部LANからしかアクセスできなくなります。

Order allow, deny
allow from 192.168.***.0/24

***は、自分のサイトのアドレスを入れてください。

リスト表示をしないようにする設定

上の/etc/apache2/sites-available/defaultの変更①は、今回の目的とは直接関係がありませんが、http://www.arakin.dyndns.org/renshu/のようにディレクトリをアクセスされた時に、次のようなリスト表示をさせないための設定です。私の場合、セキュリティというより、あまり見られたくはないからです。

Optionsの中のindexesがリスト表示を有効にしますので、これを外します。上記設定を有効にするために、Apache2.0を再起動します。

# /etc/init.d/apache2 restart

ブラウザで、http://www.arakin.dyndns.org/renshu/とした時に、次のような画面になれば、正しく動作しています。

最新の7件

OpenGL

電子工作

玄箱HG

ホームページ

日記

Copyright (C) 2007 Arakin , All rights reserved.