2011-02-19 109 views
2

我将有许多子目录,例如。/home/a,/ home/a/file,/ home/a/txt,/ home/b,/ home/b/file,/ home/b/txt等openbase_dir和子目录

子目录按需创建。我需要将所有子目录添加到open_basedir。

请指教如何使open_basedir识别顶级路径的所有子目录?

+1

它已经这样做了。它是** base dir ** -ectory,意味着整个目录树的根目录。如果`/ home /`是你的open_basedir,那么`/ home/a`,`/ home/b`等已经是该目录树的一部分。那么你的问题是什么? – 2011-02-19 03:39:38

回答

-1

open_basedir表示所有子目录都可用,一旦basedir位于您的include_path上。您当然需要确保包含文件的任何路径都是正确的,例如如果你想在/ home/B /文件的东西你需要

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

如果Apache没有找到指定的路径内的一些目录 - 一些PHP模块的升级可以解决这个问题。使用PHP 5.3.15和eAccelerator时,我使用PHP 5.3.3时已经安装了这个问题。

带eAccelerator的PHP无法在指定的open_basedir中包含所有子目录,直到我将eAccelerator升级到适当版本的PHP。

+0

对我来说最重要的是刷新eAccelerator缓存。 `rm -rf/var/cache/php-eaccelerator/*`改变`open_basedir`后,否则报告过时的警告。 – hynekcer 2013-01-28 02:17:36

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 /含/ =只目录中没有子目录

DIR /含=所有子目录