這篇文章主要為大家介紹了關於php + nginx專案中權限的相關資料,文章介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
本文介紹給大家的關於php + nginx專案權限的相關內容,分享出來供大家參考學習,以下來看看詳細的介紹:
nginx/ php-fpm
程式權限
#主程式使用者為啟動的使用者
子程序
1、nginx的使用者為nginx.conf中配置的使用者
2、php- fpm的使用者為php-fpm.conf中配置的使用者
如:啟動nginx的是root,nginx中配置的user是nginx,那主行程就是root,子行程就是nginx
處理方式
以下存取皆以nginx子程序進行
靜態檔案
步驟:nginx存取/index.html時,nginx會直接存取對應文件,並將內容傳回給請求的用戶端。
權限狀況:此時只需nginx擁有index.html檔案的權限即可。
php腳本檔案
步驟:
nginx存取/ index.php時,nginx為了能夠把正確的腳本處理結果回傳給客戶端,需要進行設定告訴nginx.php是非靜態文件,需要php腳本解析器進行處理後才能回傳內容。
一般來講會在nginx配置中加上類似fastcgi_pass unix:/var/run/php5-fpm.sock;這樣的設定項,指明nginx在遇到存取腳本文件時需要去找誰,之後會存取該檔案做到將請求轉送至php-fpm。
由php-fpm存取真正的php腳本文件,將結果傳回值nginx,再有nginx將結果傳回客戶端。
權限狀況:
#nginx需要有/var/run/php5-fpm.sock檔案權限;
php-fpm需要有/index.php檔案權限;
使用者配置位置
nginx使用者設定在nginx.conf中第一行的user
php-fpm使用者設定在php-fpm.conf中的
listen.owner = xxx;設定unix socket用戶
user = xxx設定程序啟動使用者
; The address on which to accept FastCGI requests. ; Valid syntaxes are: ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on ; a specific port; ; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on ; a specific port; ; 'port' - to listen on a TCP socket to all IPv4 addresses on a ; specific port; ; '[::]:port' - to listen on a TCP socket to all addresses ; (IPv6 and IPv4-mapped) on a specific port; ; '/path/to/unix/socket' - to listen on a unix socket. ; Note: This value is mandatory. listen = /var/run/php5-fpm.sock######其他#############比較特別的點,一般nginx都是用root使用者啟動的(為了取得80連接埠權限),如果本地開發nginx是用普通用戶重啟,那麼主進程和子進程都會是當前用戶,nginx.conf中的配置不再起效,暫不清楚原因。 ###
以上是詳解php + nginx的權限的詳細內容。更多資訊請關注PHP中文網其他相關文章!