2011-02-19 7 views
2

私は数多くのサブディレクトリを持っています。/home/a、/ home/a /ファイル、/ home/a/txt、/ home/b、/ home/b /ファイル、/ home/b/txtなどopenbase_dirとサブディレクトリ

サブディレクトリは、 。 open_basedirにすべてのサブディレクトリを追加する必要があります。

plsは、open_basedirがトップパスのすべてのサブディレクトリを認識するように助言しますか?

+1

。これは、ディレクトリツリー全体のルートを意味する**基本ディレクトリの意味です。 '/ home /'があなたのopen_basedirの場合、 '/ home/a'、'/home/b'などはすでにそのディレクトリツリーの一部です。あなたの質問は何ですか? –

答えて

-1

open_basedirは、一度basedirがあなたのinclude_pathにあると、すべてのサブディレクトリが利用可能であることを意味します。もちろん、インクルードされたファイルへのパスが正しいことを確認する必要があります。あなたが/ホーム/ B /ファイル何かをしたい場合はApacheが指定したパス内のいくつかのディレクトリが見つからない場合は、

include('b/file/myfile.php'); 
1

する必要があります - いくつかのPHPモジュールのアップグレードが問題を解決することがあります。 PHP 5.3.3を使用したときにインストールされたPHP 5.3.15とeAcceleratorを使用すると、このような問題が発生します。

eAcceleratorは、eAcceleratorを適切なバージョンのPHPにアップグレードするまで、指定されたopen_basedir内のすべてのサブディレクトリを含めることができませんでした。

+0

私にとって最も重要なのは、eAcceleratorキャッシュをフラッシュすることです。 'rm -rf/var/cache/php-eaccelerator/*'を 'open_basedir'の後に変更します。そうでなければ、古い警告を報告します。 – hynekcer

5

http://php.net/manual/en/ini.core.php#ini.open-basedir

からopen_basedirので指定された制限は、PHP 5.2.16と5.3.4以降のディレクトリ名です。以前のバージョンでは、これをプレフィックスとして使用していましたこれは、 "open_basedir =/dir/incl"が "/ dir/include"と "/ dir/incls"にアクセスできることを意味します。指定したディレクトリのみにアクセスを制限する場合は、スラッシュで終了します。たとえば、次のようにopen_basedirの= /ディレクトリ/税込/

/DIR /税込/ =ディレクトリのみなしサブディレクトリ

DIR /税込=それはすでにないすべてのサブディレクトリ

関連する問題