ページにいくつかの呼び出しがis_dir
あります。彼らはいつも問題なく働いてきました。
数日前、ホスティング会社は PHP を 5.2 から 5.3 にアップグレードしました。それ以来、すべての呼び出しis_dir
で次のエラー (メッセージ) が発生しました。
Warning: is_dir(): open_basedir restriction in effect.
File(/home/virtual/domain.com/public_html/galleries/img/002.JPG/)
is not within the allowed path(s):
(/home/virtual/domain.com:/home/virtual/_tmp)
in /home/virtual/domain.com/public_html/index.php on line 201
これは私を困惑させます。
明らかに、エラー メッセージ (およびphp_info
同様) によると、ディレクトリ/home/virtual/domain.com
(末尾にスラッシュがないため、サブディレクトリを含む) は に含まれている/有効になっており、反復しようとしopen_basedir
ているファイルis_dir
はすべて、そのフォルダーの下のサブフォルダーにあります。では、なぜそれらは許可されたパス内にないのでしょうか? 明らかにそうです!
不思議なことに、このエラーは が false を返す場合、つまりファイルがフォルダではなく通常のファイルの場合にのみ表示されるようです。エラーをスローすることなく、ディレクトリを問題なく反復処理しているようです。is_dir
以前ここに投稿された同様の質問: Open_basedir 制限の奇妙さ(解決策が見つかりません)。
誰にもアイデアはありますか?
(注:これは共有ホストであり、管理者アクセス権がないため、PHP設定を変更することはできません)