我知道,這是一個非常古老的問題完成的名字,但我想有一些深入的加入很好的解決方案說明。你將不得不在系統上執行兩個Ubuntu語句,然後它就像一個魅力一樣。
Linux中的權限可以用三位數表示。第一個數字定義了文件所有者的權限。第二位數字是特定用戶組的權限。第三位數字定義了不是該組所有者或所有組成員的所有用戶的權限。
網絡服務器應該使用作爲該組成員的ID執行。 Web服務器不應該使用與文件和目錄的所有者相同的ID運行。在Ubuntu下運行Apache下的ID數據。該ID應該是指定權限的組的成員。
爲了讓在您要更改文件的內容適當的權限,執行語句的目錄:
find %DIR% -type d -exec chmod 770 {} \;
。那將意味着在OP的問題,對於目錄%的權限ROOT%/數據庫應該相應地更改。因此,重要的是不要在該目錄內具有永遠不應該被更改或刪除的文件。因此,爲內容必須更改的文件創建單獨的目錄是最佳實踐。
讀取目錄的權限(4)意味着能夠收集所有文件和目錄及其目錄中的元數據。寫權限(2)授予更改目錄內容的權限。暗示添加和刪除文件,更改權限等。執行權限(1)表示您有權進入該目錄。沒有後者,是不可能深入目錄的。當文件的內容應該改變時,網絡服務器需要讀取,寫入和執行權限。爲此需要組數字7
第二條語句是在OP的問題:
find %DOCUMENT_ROOT%/database -type f -exec chmod 760 {} \;
能夠閱讀和書寫的文件是必需的,但它要執行的文件,不需要。 7給予文件的所有者,6給該組。網絡服務器無需擁有執行該文件的權限即可更改其內容。這些寫入權限只應該賦予該目錄中的文件。
所有其他用戶不應被授予任何權限。
對於不需要更改文件的目錄,組權限爲5就足夠了。 文檔有關權限和一些例子:
https://wiki.debian.org/Permissions
https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions
http://www.linux.org/threads/file-permissions-chmod.4094/
你是否已經通過php.ini文件查看任何可能會拒絕文件訪問的內容? – Hello71 2011-02-07 03:16:26
也確保目錄是chmod'd正確的 – 2011-02-07 03:21:04
也嘗試使用絕對文件名。這可能只是您對當前文件夾的解釋與PHP的不同 – laher 2011-02-07 03:32:38