2011-02-16 116 views
2

如果我在php中使用mkdir()創建一個文件夾,它具有www-data:www-data用戶和755權限。chmod 777在php

問題是我不能用ftp用戶(zapbe:psasrv)刪除這個文件夾 我試圖在PHP中用chmod($ path,「0777」)修改文件夾,但這不起作用。

如何使創建的文件夾和上傳的文件對於www數據和ftp用戶都可讀/可移動?

+0

你試過設置模式明確? `mkdir(「/ path/to/my/dir」,0777);` – miku 2011-02-16 16:36:23

回答

5
bool chmod (string $filename , int $mode) 

在PHP中,他們可能是在安全一定的侷限性,因此,根據你的配置可能無法正常工作。

上述函數返回一個booleon讓你知道它是否成功地改變了實體的權限。

if(!chmod($directory,0777)) 
{ 
    echo "Unable to chmod $direcotry"; 
} 

另外,從PHP報價:

當前用戶是執行PHP的用戶。它可能與您用於普通shell或FTP訪問的用戶不同。只有在大多數系統上擁有該文件的用戶才能更改該模式。

理解上面,你應該看看chown

0

刪除雙引號和嘗試,並檢查文件

chmod($path, 0777) 
2

的默認所有者當您創建* nix中一個文件夾的其他用戶就不必刪除/修改該文件夾的能力。

改變創建的文件夾的WWW的數據的權限,從瀏覽器中的PHP腳本運行的命令,它應該更新成功

不要把新的權限在雙引號,它需要一個 八進制數

chmod($path, 0777); 
// not chmod($path, "0777); 

一旦你做到這一點任何人都可以修改文件夾

4

爲了刪除目錄,您需要在父目錄上有寫權限,而不是在要刪除的目錄上有寫權限。爲了提供對父進程的寫訪問權,一個好的方法是使某個組的所有者擁有www-data和您的ftp用戶都是其成員,並且從不使用777權限。此外,請確保您的父文件夾沒有設置粘滯位。