首頁 >後端開發 >php教程 >詳解php + nginx的權限

詳解php + nginx的權限

巴扎黑
巴扎黑原創
2017-08-13 11:25:121875瀏覽

這篇文章主要為大家介紹了關於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設定程序啟動使用者



##################注意:######以上兩個設定檔不同的作業系統下檔名略有不同,請依照自身安裝自行判斷。 ######nginx轉送內容到php-fpm不只有/var/run/php5-fpm.sock的方式,在php-fpm.conf中還可以透過設定改為xxx.xxx.xxx:9000等方式############
; 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn