標籤:des style blog color os io 檔案 for
在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/democd /var/www/html/demofind -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/demofind . -name "Runtime" -type d -exec chmod -R 770 {} \;
執行上面的命令請注意 “{}”與 “\”之間是有空格的,上面的-R參數是遞迴給Runtime 目錄下面的目錄和檔案賦予 770 許可權,當然了你會說記錄檔是不需要執行許可權的,
不過這裡沒關係,當你把記錄檔刪除掉之後,產生出來的檔案是沒執行許可權的。因為當你把記錄檔刪除掉之後,那麼組建記錄檔檔案的的使用者和所有者都是www-data,
所以新的記錄檔許可權就會變成下面這樣:
這樣整個網站你就可以通過這種方式管理起來了。