2016-08-21 84 views
1

我試圖在php中使用chmod函數臨時更改權限爲777,上傳文件然後將其更改回755.但它不起作用,因爲它不允許我通過php使用chmod函數。在不更改文件夾權限的情況下授予網絡服務器權限777

if(chmod($path, 0777)) { 
    if(!move_uploaded_file($oldfile, $newfileloc)) { 
     return false; 
    } 
    chmod($path, 0755); 
    return true; 
} 
else 
    return false; 

我讓它在我以前的服務器上工作,給予文件夾755的權限。

我不確定權限是如何工作的,所以請幫助,謝謝!

編輯: 應該我的/ var/WWW文件夾中有什麼權限,這樣Web服務器可寫文件?

編輯2: 好吧,我有這個想通了。我只需要爲www-data:www-data授予權限,以確保webserver具有所有必需的權限。 但是,我得到的問題是,當我有/ var/www chown www-data:www-data,php函數工作正常,但我在使用FileZilla時獲取權限被拒絕錯誤。所以現在我必須將權限更改爲root:www-data每次我需要通過FileZilla傳輸某些內容,然後返回到www-data:www-data以確保我的網絡服務器正常工作。任何人都得到了解決這個問題?

回答

1

你可以給755許可。但是您必須更改/ var/www /文件夾的所有者和組。它應該擁有www數據的所有權和羣組所有權。首先檢查哪個用戶擁有該文件夾的所有權和組所有權。運行下面的命令。

LL /無功/網絡/

如果有root權限,它是這樣的。

drwxr-xr-x。 2 root root 23 Mar 21 17:33 html

使用以下命令將所有者和組所有者更改爲www-data用戶。

喬敦 - R的WWW的數據:www.data在/ var/WWW

你可以把文件夾的權限755 -R選項是使用了遞歸發放的允許其子文件夾和文件。

+0

感謝您的回答,但我想到了這一點。我得到的問題是,當我有/ var/www chown ** www-data:www-data **時,php函數工作正常,但是在使用FileZilla時我得到權限被拒絕錯誤。因此,現在我必須將權限更改爲** root:www-data **每次我需要通過FileZilla傳輸某些內容,然後返回到** www-data:www-data **以確保我的Web服務器正常工作。你有解決這個問題嗎? –

+0

嘗試給予acl許可。 setfacl -m u:www-data:rwx/var/www。並保持實際的所有權根:www-data。 –