在windows上運行好好的項目,遷移到Linux上就遇到了很多問題,其中最為重要的是網(wǎng)站目錄權限的設置,當然簡單期間你可以用 命令
"chmod 777 -R you web site" ,這樣你就不用擔心項目運行的時候會涉及到權限問題。通常來說如果你的項目時部署在公網(wǎng)或者是部
署在租用的Linux服務器上不建議這么做,應為如果這樣設置了那么任何用戶都可以對這個站點下的文件,目錄進行操作,這樣也會影響網(wǎng)站的運營,
同樣不安全。下面以ubuntu14.4 系統(tǒng)為主進行分析。
最簡單的做法如下,這里不建議這么做(例如你的網(wǎng)站部署目錄為/var/www/html):
chmod 777 -R /var/www/html/demo
在ubuntu 安裝完apache 之后,默認會往系統(tǒng)中增加www-data 用戶 和 www-data 用戶組,同樣你可以用 ps -ef | grep apache 查看 apache 進程,你會發(fā)現(xiàn)apache的
主進程是用root用戶啟動的,那么子線程的用戶都是 www-data 這個用戶。

這樣你就可以理解為這個apache服務器運行的用戶和用戶組是www-data,假設網(wǎng)站的用戶為demo,項目的目?為/var/www/html/demo
接下來就分幾個步驟來設置(用root用戶執(zhí)行下面的命令):
1.首先把網(wǎng)站的的目錄和文件的所有者設置為demo,所屬組設置為www-data ,對與Linux命令不熟悉的,可以到網(wǎng)上查詢。
chown -R demo:www-data /var/www/html/demo
2.設置網(wǎng)站目錄權限為750,750是demo這個用戶對目錄擁有讀寫執(zhí)行的權限,這樣demo用戶可以在任何目錄下創(chuàng)建文件,用戶組有有讀執(zhí)行權限,這樣就有進入目錄的權限,其它用戶沒有任何權限。
chmod 750 /var/www/html/demo
cd /var/www/html/demofind -type d -exec chmod 750 {} ;3.設置網(wǎng)站文件權限為640,640指只有demo用戶對網(wǎng)站文件有更改的權限,apache服務器只有讀取文件的權限,無法更改文件,其它用戶無任何權限。
find -not -type d -exec chmod 640 {} ;4.需要針對個別目錄來設置權限,以Thinkphp為例,它的Runtime 目錄存儲的有日志文件,還有與數(shù)據(jù)庫做ORM映射的數(shù)據(jù)庫表信息,這說明apache服務器要對這些目錄
有訪問的權限,并且對于線面的日志文件有寫入的權限,那么這樣就需要對于這些特殊目錄設置。
cd /var/www/html/demofind . -name "Runtime" -type d -exec chmod -R 770 {} ;執(zhí)行上面的命令請注意 “{}”與 “”之間是有空格的,上面的-R參數(shù)是遞歸給Runtime 目錄下面的目錄和文件賦予 770 權限,當然了你會說日志文件是不需要執(zhí)行權限的,
不過這里沒關系,當你把日志文件刪除掉之后,生成出來的文件是沒執(zhí)行權限的。因為當你把日志文件刪除掉之后,那么生成日志文件的的用戶和所有者都是www-data,
所以新的日志文件權限就會變成下面這樣:

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