2008-10-12 33 views

回答

11

您正在編輯更高級別的目錄,因此PHP用戶需要具有對該目錄的寫入權限。

0

嘗試運行以下腳本:

print_r(posix_getpwuid(getmyuid())); 
print_r(pathinfo($YOUR_PATH)); 

看到那個返回什麼。

2

這可能是因爲apache不是父目錄的所有者。重命名(或移動)文件與創建新文件基本相同。

2

澄清,PHP只能重命名目錄,它有實際所有權過來:

-rwxrwxrwx user user temp/ 
-rwxr-xr-x apache apache temp2/ 
-rw-r--r-- user user script.php 

承擔的script.php正試圖重命名這兩個目錄:

// this operation fails as PHP (running as apache) does not own "temp", 
// despite having write permissions  
rename('temp', 'temp.bak'); 

// this operation is successful as PHP owns "temp2" 
rename('temp2, 'temp.bak'); 
+0

在安全模式下是正確的,但在所有其他情況下不需要所有權 - 具有適當權限的簡單chmod就足夠了。 – brezanac 2012-01-10 01:49:02

0

另一件事,可能有助於這些種類的情況是嘗試降低權限。我已經看到了apache拒絕應用程序權限來執行某些操作的場合,因爲它的權限也設置爲。我的猜測是,這是爲了鼓勵良好的安全實踐。

相關問題