14

ディレクトリ/htdocs/unsecuredがあり、そのディレクトリまたはそのサブディレクトリにあるものはすべて、そのディレクトリの外部にあるものにアクセスできないように制限したいと思います。open_basedirこのディレクトリのみをどこにどのように設定しますか?

4

2 に答える 2

17

open_basedirApache 構成ファイル php.ini または .htaccess ファイルで設定できます。

通常、これは /etc/httpd/conf/httpd.conf などの Apache 構成ファイルで設定します。

現在のドメイン/仮想ホストのディレクトリ構造が作成され、そこに直接行を追加できます。

<VirtualHost 123.123.123.123:80>
    <Directory /htdocs/unsecured>
        php_admin_value open_basedir "C:/htdocs/unsecured"
    </Directory>
</VirtualHost>

注:123.123.123.123ドメインの IP アドレスでありこのサンプル ブロックでは、この構成の多くのデータが除外される可能性があり、 に必要なものだけが表示されopen_basedirます。

php.ini では、次のように、より一般的なレベルでこれを行うことができます (サーバー上のすべてのドメインに適用されます)。

open_basedir = "/htdocs/unsecured"

.htaccess では、次のものを使用できるはずです (ただし、テストしていません)。

php_value open_basedir "/htdocs/unsecured"

編集(Windows パス)
コメントによると、Windows で xammp を実行しています (仮想ホストを使用していません)。この情報を使用して、open_basedirルールをphp.iniファイルに入れることをお勧めします。これは(うまくいけば)うまくいくはずです:

open_basedir = "C:\xampp\htdocs\unsecured"

Linux では、a:はフィールド セパレータです。Windows では、;が区切り記号です。これで機能するはずですが、個人的にテストすることはできません。

于 2012-11-08T14:45:35.990 に答える
0

php.ini、httpd.conf、または実行時にopen_basedir を変更することもできます。

于 2012-11-08T14:45:14.780 に答える