2011-09-10 56 views
3

我想創建一個文件夾,然後使用PHP在其中的另一個文件夾。PHP文件夾權限問題

如果是這樣的目錄結構,我有

/home/site       (owner : user1) 

現在,我創建使用

mkdir("/home/site/newdir",0777);  (user : apache) 

/家/網站/ NEWDIR創建目錄但用戶的文件夾目錄是「apache

現在,在做

mkdir("/home/site/newdir/anotherdir",0777); 

does not create another directory in newdir。

請幫忙。我認爲它是一個所有者問題。 我無法使用chmod()或更改所有者。所有者保持不變。

什麼可能導致這種情況?

編輯:

<?php 
error_reporting(E_ALL); 

mkdir("./m",0777); // works 
mkdir("./m/v",0777); // doesnt work 

在頁面上沒有錯誤。

var_dump(is_writeable("./m")) // returns bool(true) 

編輯:這已得到修復。對於可能面臨同樣問題的其他人來說,這是因爲PHP的安全模式爲「開啓」。仍然不知道安全模式確實背後的原因,不允許您創建嵌套的目錄。

但它現在有效。感謝所有的閱讀。

+1

您正在使用0777權限創建目錄,這一定不會是一個權限問題。嘗試在/ home/site/newdir中創建目錄時,PHP是否顯示任何錯誤? – arnaud576875

+1

你有錯誤嗎? – Ikke

+0

沒有錯誤。 var_dump(is_writeable(「./ m」))返回true。檢查我編輯的帖子。 –

回答

1

mkdir()創建的目錄模式受當前umask影響,這就是爲什麼chmod()不適合你。

嘗試:

$old_mask = umask(0); 
mkdir("/home/site/newdir/anotherdir",0777); 
umask($old_mask);