基于linux系統(tǒng)的web辦事器架構(gòu)傳聞過良多年了,也用了好幾年,不外都是用現(xiàn)成的運(yùn)行環(huán)境,好比虛擬主機(jī)、共用VPS。親手建設(shè)、把玩,我仍是第一回,初學(xué)過程的盤曲在料想當(dāng)中,幾次熬煎了兩三天,終究弄清晰一些linux根本概念和nginx+php建設(shè)。今上帝要記實nginx+php環(huán)境下,本來理解的很混亂的網(wǎng)站目次權(quán)限設(shè)置。
因為對linux文件權(quán)限的概念不清晰,遷徙網(wǎng)站到VPS上時,擔(dān)憂設(shè)置錯了影響網(wǎng)站安然,剛好之前一個網(wǎng)站被掛了馬,建設(shè)辦事器時就出格在乎這事了。

建設(shè)權(quán)限的原則是,在包管網(wǎng)站正常運(yùn)行下,盡可能給最低權(quán)限。
我的建設(shè):
1、nginx過程用戶是默許用戶wwwboy;(臨時還不知道nginx過程用戶會對辦事器甚么處所的權(quán)限有影響,建設(shè)nginx仿佛都沒碰著權(quán)限設(shè)置標(biāo)題問題)
2、php-fpm過程用戶建設(shè)為wwwboy;
3、網(wǎng)站目次所有者設(shè)置為ftpuser,因為需要在FTP中對網(wǎng)站文件進(jìn)行下載(讀取)、上傳(寫進(jìn)),ftpuser必定對網(wǎng)站目次有讀寫權(quán)限。
關(guān)頭點(diǎn):php-fpm 子過程所利用的用戶,不克不及是網(wǎng)站文件所有者。這里保舉一篇關(guān)于權(quán)限設(shè)置的文章《準(zhǔn)確設(shè)置網(wǎng)站文件所有者 進(jìn)步網(wǎng)站安然性 避免被掛木馬》,我就是讀完這篇文章才理解nginx、php-fpm、網(wǎng)站文件權(quán)限之間的關(guān)系和若何設(shè)置才安然。
上面保舉的文章里也寫了,網(wǎng)站文件所有者和php-fpm過程用戶設(shè)為不合的好處是在PHP法度中沒法對網(wǎng)站文件進(jìn)行點(diǎn)竄,如許即便網(wǎng)站被掛馬了,也能降落良多損掉,例如,對方?jīng)]法在你的正常代碼里混進(jìn)后門。
之前總習(xí)慣性地把緩存目次權(quán)限設(shè)置為777,這回既然寄望到安然標(biāo)題問題,就想趁便弄清晰一下緩存目次如何設(shè)置才準(zhǔn)確合理并安然。其實,體味清晰linux文件權(quán)限分派編制,這個利誘也就開闊爽朗了:
假定網(wǎng)站緩存目次名為cache,其所有者為ftpuser。緩存文件是由php-fpm過程履行寫進(jìn),相當(dāng)于用戶wwwboy要在用戶ftpuser的目次cache里寫文件,不被承諾的!是以,要分派給wwwboy對cache目次的寫權(quán)限,chmod o+w -R cache便可,假定ftpuser與wwwboy統(tǒng)一個用戶組,就chmod g+w -R cache。緩存目次不需要履行權(quán)限,所以以往設(shè)置777權(quán)限的做法相當(dāng)粗拙,不外在利用虛擬主機(jī)的時辰,本身沒法掌控辦事器上各類設(shè)置,777也是最便捷做法了。
[2013-3-25更新]:緩存目次需要o+wx,添加x的啟事是讀取目次的時辰需要履行權(quán)限,不然文件是寫不成功的。除非要生成的文件和寫文件的腳本在統(tǒng)一個目次內(nèi),不需要讀取目次的權(quán)限,也就不需要履行權(quán)限。道理:(此處感激 @lanisle)
On a directory, the execute permission (also called the "search bit") allows
you to access files in the directory and enter it, with the cd command, for
example. However, note that although the execute bit lets you enter the
directory, you're not allowed to list its contents, unless you also have the
read permissions to that directory.
以上便是對nginx+php網(wǎng)站目次權(quán)限安然設(shè)置的表述和理解,看起來像菜鳥根本班的筆記。別的,以往我對開源的偉大年夜魅力不覺得然,進(jìn)修利用linux幾天,開端有所體味。