[Linux]PHP-FPM与NGINX的两种通讯方式

Posted yiyide266

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Linux]PHP-FPM与NGINX的两种通讯方式相关的知识,希望对你有一定的参考价值。

一、通过监听TCP端口通讯

php-fpm.d/www.conf

; 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 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 = 127.0.0.1:9000

nignx.conf

location ~ .php {
            root           /lroot/wwwroot/test;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info ^(.+.php)(.*)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

二、通过unix socket进程间通讯

先选定一个目录创建一个空.sock文件,例如/run/php-fpm.sock(注意不应选用/tmp目录),再进行配置

php-fpm.d/www.conf

1.设置通讯方式

; 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 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 = /run/php-fpm.sock

2.设置创建.sock文件的访问权限,以便nginx进程能够访问php-fpm创建的.sock

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default users group
;       will be used.
user = nginx
group = nginx
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions.
; Default Values: user and group are set as the running user
;                 mode is set to 0660
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

nignx.conf

location ~ .php {
            root           /lroot/wwwroot/test;
            fastcgi_pass   unix:/run/php-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_split_path_info ^(.+.php)(.*)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;

        }

 

以上是关于[Linux]PHP-FPM与NGINX的两种通讯方式的主要内容,如果未能解决你的问题,请参考以下文章

nginx与php-fpm通讯方式

php 与 nginx 的两种处理方式

nginx和php的两种通信方式

详解Nginx 和 PHP 的两种部署方式的对比

FastCGI特点原理nginx与php-fpm两种通信方式对比

Linux的两种安装方式