nginx php mysql分离,详解nginx、php-fpm和mysql用户权限
通常情況下,我們運(yùn)行web應(yīng)用的服務(wù)器有CentOS、Ubuntu、Debian等等的Linux發(fā)行版本。這時(shí)候,構(gòu)成服務(wù)架構(gòu)所必須的Nginx、php和MySQL等應(yīng)用的權(quán)限控制就顯得非常重要,各個(gè)服務(wù)對(duì)代碼目錄的權(quán)限要求各不相同,缺少某些權(quán)限會(huì)造成服務(wù)無(wú)法讀寫(xiě)或運(yùn)行的錯(cuò)誤,降低了權(quán)限要求又會(huì)存在被入侵修改的隱患。這里我們就來(lái)總結(jié)一下nginx、php-fpm和mysql等等這些服務(wù)的權(quán)限劃分。
一、web服務(wù)器Nginx權(quán)限
PHP的運(yùn)行框架通常都是結(jié)合Nginx組成LNMP或者結(jié)合Apache組成LAMP的架構(gòu),這里用Nginx作為例子講述一下Nginx服務(wù)運(yùn)行所需要的權(quán)限。
我們知道,Nginx本身不能解析PHP的語(yǔ)法,所以Nginx對(duì)于靜態(tài)文件(如HTML等)會(huì)直接解析返回結(jié)果,但是對(duì)于PHP的文件,Nginx會(huì)轉(zhuǎn)交給PHP的解釋器php-fpm進(jìn)行處理,處理完后再返回響應(yīng)給客戶端瀏覽器。
因此,我們代碼目錄下需要統(tǒng)一Nginx和php的服務(wù)所需權(quán)限。
①如果統(tǒng)一使用root用戶,則一般游客賬戶無(wú)法訪問(wèn)應(yīng)用,而nginx配置成以root運(yùn)行的話會(huì)存在很大的安全隱患,一旦被攻擊就會(huì)被獲取root身份進(jìn)行系統(tǒng)的一切操作。
②而如果統(tǒng)一將代碼目錄權(quán)限全部設(shè)置為rwxrwxrwx,則存在用戶直接通過(guò)瀏覽器修改代碼目錄的隱患。
所以最好的辦法就是統(tǒng)一歸類(lèi)到一個(gè)新的用戶組里面,通過(guò)給該用戶組分配N(xiāo)ginx和php運(yùn)行必要的權(quán)限,來(lái)實(shí)現(xiàn)對(duì)web應(yīng)用的權(quán)限目錄管理。通常情況下,許多團(tuán)隊(duì)都會(huì)把這個(gè)用戶組取名www,由www用戶來(lái)統(tǒng)一管理代碼目錄權(quán)限。
我們可以看到Nginx的配置文件nginix.conf里面劃分的運(yùn)行權(quán)限就是配置到了www用戶下,因此Nginx的子進(jìn)程也是由www用戶執(zhí)行,可以通過(guò)ps aux | grep nginx來(lái)查看:
可以看到nginx的主進(jìn)程是root,其余子進(jìn)程均是www的用戶
nginx.conf的配置:
二、php的權(quán)限配置
同樣的,php的運(yùn)行方式也是由主進(jìn)程root運(yùn)行,在子進(jìn)程池(pool)里面配置由www用戶執(zhí)行,具體配置在php根目錄下的etcphp-fpm.conf下,添加兩行:
user = www
group = www
即可,同樣用ps aux | grep php可以查看進(jìn)程使用的用戶身份:
三、MySQL服務(wù)的權(quán)限配置
通過(guò)ps aux | grep mysql可以看到MySQL服務(wù)是運(yùn)行在mysql用戶下的,該服務(wù)只需要我們?cè)趐hp代碼連接mysql時(shí)帶上mysql的用戶名密碼即可,不需要統(tǒng)一為www,因?yàn)閿?shù)據(jù)層需要與業(yè)務(wù)邏輯層隔離開(kāi),保證底層數(shù)據(jù)的安全。mysql的授權(quán)主要是在mysql服務(wù)內(nèi)新增用戶和劃分權(quán)限,用來(lái)控制php不同業(yè)務(wù)以不同權(quán)限范圍的身份去連接,確保數(shù)據(jù)安全。
四、總結(jié)
nginx配置:
user www www;
php-fpm:
user = www
group = www
轉(zhuǎn)自:https://blog.csdn.net/dream_successor/article/details/78615825?locationNum=8&fps=1
總結(jié)
以上是生活随笔為你收集整理的nginx php mysql分离,详解nginx、php-fpm和mysql用户权限的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: tomcat9扩展php 插件,Ecli
- 下一篇: php有意思知识分享,分享几个有意思的数