2011-02-19 41 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 /含=所有子目錄