nginx服務器的網站權限問題

有時候我們的網站根目錄會從一個目錄遷移到另一個目錄,如果我們服務器使用的是nginx或者Apache,我們一般會配置好網站根目錄後然後往直接把網站解壓或者上傳到根目錄中,這樣引起的問題是無法對對文件進行任何的操作導致網站的異常,這在框架中最爲常見,本地運行好好的網站,上傳到服務器之後突然就不能訪問了,出現很多錯誤,這就是在Linux下存在的權限問題,網上有些方法是很粗暴的使用chmod -R 777 dirname把所有的文件權限全部打開,其實這樣能解決問題,但是不是最好的解決方案,我們如果理解Linux系統的用戶權限那麼問題就有更好的解決方案,下面以nginx服務器爲例看一下

首先默認的網站目錄是755權限的並且我們在root用戶下的默認權限也是該用戶的權限,就是目錄的所屬用戶和用戶組都是root,當我們訪問網站時,瀏覽器發出請求,服務端相應的資源處理請求,如果涉及到文件的修改或新建操作時,服務端程序負責執行,由於服務端程序是由nginx和相應的語言解釋模塊負責執行的,所以首先服務器要有權限修改網站目錄,我們打開nginx服務器下的配置文件nginx.conf,第一行就是nginx執行的用戶和組的設置
  在這裏插入圖片描述

然後重啓nginx服務器

如果是php的話,那麼目前比較常用的是nginx會交由php-fpm模塊去執行相應的操作,

所以還應該在php-fpm.conf中修改

user=www

group=www
在這裏插入圖片描述

修改之後重啓php-fpm模塊,到這裏用戶配置就完成了

然後我們可以新建一個專門用於網站和ftp上傳文件的用戶,該用戶是不登錄的所以建立的時候要使用/sbin/nologin來建,我們看到nginx服務器的權限是www所以此時我們的做法是把網站根目錄的權限改爲www,命令爲:

chown -R -v www:root /www/wwwroot

這樣的話網站用戶和組的的權限分別是www和root,服務器作爲用戶的讀寫是沒有任何問題的,這個時候如果服務端自動建立的文件用戶權限就爲www組權限也爲www,這樣就具有完全的控制權了並且權限限制的剛好,

另外有些時候我們使用的網頁富文本編輯器會遇到權限的問題,導致無法上傳文件或者建立目錄,這個時候我們只需要手動更改上傳目錄的權限爲777即可,比如:chmod 777 upload 可能原因是編輯器前後端使用的是js交互,所以並不完全是nginx服務器的緣故

經過以上的步驟,在Linux上部署網站時,權限問題就解決了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章