ディレクトリ/htdocs/unsecured
があり、そのディレクトリまたはそのサブディレクトリにあるものはすべて、そのディレクトリの外部にあるものにアクセスできないように制限したいと思います。open_basedir
このディレクトリのみをどこにどのように設定しますか?
2 に答える
open_basedir
Apache 構成ファイル 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 では、;
が区切り記号です。これで機能するはずですが、個人的にテストすることはできません。
php.ini、httpd.conf、または実行時にopen_basedir を変更することもできます。