在windows上運行好好的項目,遷移到Linux上就遇到了不少問題,其中最爲重要的是網站目錄權限的設置,固然簡單期間你能夠用 命令php
"chmod 777 -R you web site" ,這樣你就不用擔憂項目運行的時候會涉及到權限問題。一般來講若是你的項目時部署在公網或者是部html
署在租用的Linux服務器上不建議這麼作,應爲若是這樣設置了那麼任何用戶均可以對這個站點下的文件,目錄進行操做,這樣也會影響網站的運營,web
一樣不安全。下面以ubuntu14.4 系統爲主進行分析。數據庫
最簡單的作法以下,這裏不建議這麼作(例如你的網站部署目錄爲/var/www/html):apache
chmod 777 -R /var/www/html/demo
在ubuntu 安裝完apache 以後,默認會往系統中增長www-data 用戶 和 www-data 用戶組,一樣你能夠用 ps -ef | grep apache 查看 apache 進程,你會發現apache的ubuntu
主進程是用root用戶啓動的,那麼子線程的用戶都是 www-data 這個用戶。windows
這樣你就能夠理解爲這個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,
因此新的日誌文件權限就會變成下面這樣:
這樣整個站點你就能夠經過這種方式管理起來了。