Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式

php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式

作者头像
子润先生
修改于 2021-07-13 03:45:09
修改于 2021-07-13 03:45:09
6150
举报

先给大家介绍下php 与 nginx 的两种处理方式,具体内容如下所示:

1.IP:Port 监听方式

php-fpm

docker pull PHP:2.4-alpine

nginx.conf

fastcgi_pass 127.0.0.1:9000;

php-fpm 在容器里的 nginx.conf

location /php

{

proxy_set_header Host $host:$server_port;

proxy_pass

:80/;

}

2.UDS 方式监听

php-fpm

listen = /tmp/php-fpm.sock

nginx.conf

fastcgi_pass unix:/tmp/php-fpm.sock;

3.注意

php-fpm用ip:port方式建立链接,

nginx不要用unix socket方式建立链接,用ip:port方式建立连接就行

下面看下nginx与php-fpm通信的两种方式

linux中,nginx服务器和php-fpm可以通过tcp socket和unix socket两种方式实现。

unix socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。这种方式需要再nginx配置文件中填写php-fpm的pid文件位置,效率要比tcp socket高。

tcp socket的优点是可以跨服务器,当nginx和php-fpm不在同一台机器上时,只能使用这种方式。

windows系统只能使用tcp socket的通信方式

配置方法

tcp socket

tcp socket通信方式,需要在nginx配置文件中填写php-fpm运行的ip地址和端口号。

location ~ .php$ {

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

}

unix socket

unix socket通信方式,需要在nginx配置文件中填写php-fpm运行的pid文件地址。

location ~ .php$ {

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;;

fastcgi_pass unix:/var/run/php5-fpm.sock;

fastcgi_index index.php;

}

php-fpm的运行端口号和so/

/cket文件的地址都是在php-fpm.conf中配置的。 

php-fpm.conf文件在php安装文件的/etc目录下,

比如你的php安装在/opt/php目录,则应该是/opt/php/php-fpm.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 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 = 127.0.0.1:9000

listen = /var/run/php-fpm.sock

通过注释可以看到,php-fpm的listen指令可以通过五种方式处理FastCGI请求,分别是:

; 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 use

; mode is set to 0660

listen.owner = www

listen.group = www

listen.mode = 0660

可以配置nginx和php-fpm都是用www用户,这样就不会存在权限问题,当然也可以创建不同的用户,然后加入同一个组,便于分配权限。

以上所述是小编给大家介绍的php 与 nginx 的两/

/种处理方式及nginx与php-fpm通信的两种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
详解 Nginx 和 php-fpm 调用方式
PHP 项目使用 Nginx 时,一般通过 php-fpm Nginx+PHP-FPM 形式访问交互,本文将详细解读 Nginx 配置文件、PHP-FPM、PHP-CGI 和 fastCGI 的概念。
Yangsh888
2022/03/28
2.7K0
【高级】PHP-FPM和Nginx的通信机制
每种动态语言( PHP,Python 等)的代码文件需要通过对应的解析器才能被服务器识别,而 CGI 协议就是用来使解释器与服务器可以互相通信。PHP 文件在服务器上的解析需要用到 PHP 解释器,再加上对应的 CGI 协议,从而使服务器可以解析到 PHP 文件。
全栈程序员站长
2022/07/08
4720
【高级】PHP-FPM和Nginx的通信机制
Nginx与php-fpm之间的通信机制(一)
讲Fastcgi之前需要先讲CGI,CGI是为了保证web server传递过来的数据是标准格式的,它是一个协议。每种动态语言( PHP,Python 等)的代码文件需要通过对应的解析器才能被服务器识别,而 CGI 协议就是用来使解释器与服务器可以互相通信。PHP 文件在服务器上的解析需要用到 PHP 解释器,再加上对应的 CGI 协议,从而使服务器可以解析到 PHP 文件。
兔云小新LM
2019/12/19
2.6K1
工具系列 | PHP-FPM+Nginx 通信详解
PHP-FPM的全称是PHP FastCGI Process Manager,PHP-FPM是FastCGI的实现,并提供了进程管理的功能。FastCGI进程包含master进程和worker进程两种进程。master进程只有一个,负责监听端口,接收Nginx的请求,而worker进程则一般有多个(可配置),每个进程内部都嵌入了一个PHP解释器,是PHP代码真正执行的地方。
Tinywan
2023/03/08
3.2K0
工具系列 | PHP-FPM+Nginx 通信详解
PHP-FPM+Nginx通信原理
用了这么久了PHP+Nginx了,你了解他们之间的通信原理吗?这一次做一回真正的PHPer(在上一篇文章里边已经全面介绍了CGI、FastCGI、PHP-FPM,所以本文对于这些概念不再介绍的那么详细)
猿哥
2019/11/23
1.5K0
PHP-FPM+Nginx通信原理图文剖析
PHP-FPM的全称是PHP FastCGI Process Manager,PHP-FPM是FastCGI的实现,并提供了进程管理的功能。FastCGI进程包含master进程和worker进程两种进程。master进程只有一个,负责监听端口,接收Nginx的请求,而worker进程则一般有多个(可配置),每个进程内部都嵌入了一个PHP解释器,是PHP代码真正执行的地方。
Tinywan
2023/11/17
6660
PHP-FPM+Nginx通信原理图文剖析
Nginx中fastcgi_pass的配置问题
--------------------------------------------------
双面人
2020/02/13
4.5K0
Nginx中fastcgi_pass的配置问题[通俗易懂]
Nginx和PHP-FPM的进程间通信有两种方式,一种是TCP,一种是UNIX Domain Socket. 其中TCP是IP加端口,可以跨服务器.而UNIX Domain Socket不经过网络,只能用于Nginx跟PHP-FPM都在同一服务器的场景.用哪种取决于你的PHP-FPM配置: 方式1: php-fpm.conf: listen = 127.0.0.1:9000 nginx.conf: fastcgi_pass 127.0.0.1:9000; 方式2: php-fpm.conf: listen = /tmp/php-fpm.sock nginx.conf: fastcgi_pass unix:/tmp/php-fpm.sock; 其中php-fpm.sock是一个文件,由php-fpm生成,类型是srw-rw—-.
全栈程序员站长
2022/09/08
2K0
nginx php-fpm 配置不当,引起的php文件无法执行
网站是用nginx服务的。 网上很多情况是因为nginx配置中 location ~ .php$ { # root html; #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
conanma
2021/12/05
2K0
如何在CentOS 7上升级到PHP 7
2015年12月3日发布的PHP 7承诺与以前版本的语言相比具有显着的速度提升,以及标量类型提示等新功能。本指南介绍如何使用社区提供的软件包将运行PHP 5.x(任何版本)的Apache或Nginx Web服务器快速升级到PHP 7。
葡萄
2018/10/22
1.8K0
phpstudy nginx配置_phpstorm配置php环境
nginx 是一个高性能的http服务器和反向代理服务器。即nginx可以作为一个HTTP服务器进行网站的发布处理,也可以作为一个反向代理服务器进行负载均衡。但需要注意的是:nginx本身并不会对php文件进行解析。对PHP页面的请求将会被nginx交给FastCGI进程监听的IP地址及端口,由php-fpm(第三方的fastcgi进程管理器)作为动态解析服务器处理,最后将处理结果再返回给nginx。即nginx通过反向代理功能将动态请求转向后端php-fpm,从而实现对PHP的解析支持,这就是Nginx实现PHP动态解析的基本原理。
全栈程序员站长
2022/11/09
2.7K0
phpstudy nginx配置_phpstorm配置php环境
nginx是如何与php-fpm进行结合通信的【nginx】
Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器
sinnoo
2020/11/13
7720
nginx是如何与php-fpm进行结合通信的【nginx】
12.15 Nginx解析php相关配置
Nginx解析php相关配置目录概要 配置如下: location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name; } fastcgi_
运维小白
2018/02/06
2.1K0
了解PHP-FPM
在服务器上,当我们查看php进程时,全都是php-fpm进程,大家都知道这个就是php的运行环境,那么,它到底是个什么东西呢?
硬核项目经理
2019/11/19
1.6K0
宝塔面板创建DVWA靶场,php-fpm报502问题
今天闲来无事,想着重新搭建DVWA靶场耍耍,遂在宝塔面板上尝试搭建DVWA靶场,搭建过程中,发现访问php页面访问报错502状态码,于是就把排查解决过程中记录了下来,供大家参考。
韦锡隆
2023/04/19
2.7K0
nginx和php-fpm通信,使用unix socket还是TCP及其配置
nginx和fastcgi的通信方式有两种,一种是TCP的方式,一种是unix socke方式。两种方式各有优缺点,这里先给出两种的配置方法,然后再对性能、安全性等做出总结。
lukachen
2023/10/22
1.6K0
php-fpm报502问题「建议收藏」
搭建lnmp完lnmp环境后,测试时出现502报错,看到这个问题,我立刻想到是php-fpm没有起来,但是我用 ps -ef | grep php-fpm 截取 php-fpm 的进程,发现是有的,这时我有查看nginx的错误日志,发现错误信息是:
全栈程序员站长
2022/07/18
4780
php-fpm报502问题「建议收藏」
PHP7中php.ini、php-fpm和www.conf的配置
根据前文《2015博客升级记(五):CentOS 7.1编译安装PHP7》的configure编译参数设定,安装后的PHP7配置文件所在路径是/usr/local/php7/etc。该目录下会有两个配置文件:php-fpm.conf和php.ini,以及一个文件夹php-fpm.d(包含www.conf文件)。
typecodes
2024/03/29
1.8K0
PHP7中php.ini、php-fpm和www.conf的配置
Zabbix6.0 LTS Nginx PHP-FPM 监控(七)
需要使用ngx_http_stub_status_module模块,提供对基本状态信息的访问默认情况下不构建此模块,编译安装应使用--with-http_stub_status_module配置参数启用它.采用yum和apt安装nginx 无需手动添加ngx_http_stub_status_module模块
Kevin song
2022/04/15
1.2K0
Zabbix6.0 LTS  Nginx PHP-FPM 监控(七)
nginx + php-fpm 性能调优
对于PHP服务而言,nginx + php-fpm 是常用的服务配置,如何进行服务器性能调优是一个服务端开发的必备技能。
用户3147702
2022/06/27
1.5K0
相关推荐
详解 Nginx 和 php-fpm 调用方式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档