Linux下ThinkPHP網站目錄權限設置


在windows上運行好好的項目,遷移到Linux上就遇到了很多問題,其中最為重要的是網站目錄權限的設置,當然簡單期間你可以用 命令

"chmod 777 -R you web site" ,這樣你就不用擔心項目運行的時候會涉及到權限問題。通常來說如果你的項目時部署在公網或者是部

署在租用的Linux服務器上不建議這么做,應為如果這樣設置了那么任何用戶都可以對這個站點下的文件,目錄進行操作,這樣也會影響網站的運營,

同樣不安全。下面以ubuntu14.4 系統為主進行分析。

最簡單的做法如下,這里不建議這么做(例如你的網站部署目錄為/var/www/html):

chmod 777 -R /var/www/html/demo

在ubuntu 安裝完apache 之后,默認會往系統中增加www-data 用戶 和 www-data 用戶組,同樣你可以用 ps -ef | grep apache 查看 apache 進程,你會發現apache的

主進程是用root用戶啟動的,那么子線程的用戶都是 www-data 這個用戶。

這樣你就可以理解為這個apache服務器運行的用戶和用戶組是www-data,假設網站的用戶為demo,項目的目錄為/var/www/html/demo

接下來就分幾個步驟來設置(用root用戶執行下面的命令):

1.首先把網站的的目錄和文件的所有者設置為demo,所屬組設置為www-data ,對與Linux命令不熟悉的,可以到網上查詢。

chown -R demo:www-data /var/www/html/demo

2.設置網站目錄權限為750,750是demo這個用戶對目錄擁有讀寫執行的權限,這樣demo用戶可以在任何目錄下創建文件,用戶組有有讀執行權限,這樣就有進入目錄的權限,其它用戶沒有任何權限。

chmod 750 /var/www/html/demo
cd  /var/www/html/demo
find -type d -exec chmod 750 {} \;

3.設置網站文件權限為640,640指只有demo用戶對網站文件有更改的權限,apache服務器只有讀取文件的權限,無法更改文件,其它用戶無任何權限。

find -not -type d -exec chmod 640 {} \;

4.需要針對個別目錄來設置權限,以Thinkphp為例,它的Runtime 目錄存儲的有日志文件,還有與數據庫做ORM映射的數據庫表信息,這說明apache服務器要對這些目錄

有訪問的權限,並且對於線面的日志文件有寫入的權限,那么這樣就需要對於這些特殊目錄設置。

cd /var/www/html/demo
find . -name "Runtime" -type d -exec chmod -R 770 {} \;

執行上面的命令請注意 “{}”與 “\”之間是有空格的,上面的-R參數是遞歸給Runtime 目錄下面的目錄和文件賦予 770 權限,當然了你會說日志文件是不需要執行權限的,

不過這里沒關系,當你把日志文件刪除掉之后,生成出來的文件是沒執行權限的。因為當你把日志文件刪除掉之后,那么生成日志文件的的用戶和所有者都是www-data,

所以新的日志文件權限就會變成下面這樣:

這樣整個站點你就可以通過這種方式管理起來了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM