我剛剛學會在我的ubuntu linux localhost上首次安裝Apache 2。我正在使用PHP5。Apache Webserver - 如何寫權限設置爲755而不是777
我注意到,無論何時我想寫入文件或目錄,我都必須chmod 777目的地。
但是從我的第三方託管解決方案的工作經驗來看,我通常可以寫入具有755權限的文件和目錄。
我可以在我的本地主機上做些什麼,以便我可以用755個權限寫入文件和目錄?如果這個答案很長,有人可以給我一個鏈接指導一步一步來做到這一點?
我剛剛學會在我的ubuntu linux localhost上首次安裝Apache 2。我正在使用PHP5。Apache Webserver - 如何寫權限設置爲755而不是777
我注意到,無論何時我想寫入文件或目錄,我都必須chmod 777目的地。
但是從我的第三方託管解決方案的工作經驗來看,我通常可以寫入具有755權限的文件和目錄。
我可以在我的本地主機上做些什麼,以便我可以用755個權限寫入文件和目錄?如果這個答案很長,有人可以給我一個鏈接指導一步一步來做到這一點?
您可能無法實現此目的,因爲文件的所有者與嘗試對文件執行操作的用戶不同。
的權限是:
業主羣大家
rwx-rwx-rwx
i.e. 111 = 7 which allows read/write and execute.
101 = 5 which is just read and execute
你不能在用戶因爲你的記錄寫入該文件不具有訪問所有者/組的一部分文件。
最終的7(即rwx-rwx-111(7))意味着在全局範圍內,每個人都可以讀取/寫入該文件。
如何解決這一問題
在Linux中,你可以使用chown或chgrp命令命令來實現你想要的結果。
首先,您需要了解您的PHP代碼正在運行的用戶。如果您使用mod_php5
(軟件包名稱libapache2-mod-php5
)與Apache一起運行「worker」或「prefork」MPM,則這可能是www-data
。
只要您只在服務器中運行一個Web應用程序,這不是什麼大問題。但是,如果您運行多個應用程序(或由多個用戶擁有的腳本),則可以爲各種安全相關的「樂趣」設置自己的身份。
以下是網站內容管理的一些簡單的規則(在Apache),大多數人應該遵循:
如果你做了這兩件事,那麼你應該可以寫入由Apache服務的文件。我不確定您的文檔根目錄在哪裏,但類似這樣的內容可能適用於最簡單的安裝:
$ sudo usermod $USER -a -G www-data
$ cd /var/www
$ sudo chown -R www-data:www-data .