php-fpm

CGI fastCgi php-fpm PHP-CGI 辨析

自古美人都是妖i 提交于 2020-03-31 06:26:05
CGI fastCgi php-fpm PHP-CGI 辨析 LNMP环境中的nginx是不支持php的,需要通过fastcgi插件来处理有关php的请求。而php需要php-fpm这个组件提供该功能。在php5.3.3以前的版本php-fpm是以一个补丁包的形式存在的,而php5.3.3以后只需在编译安装时使用–enable-fpm加载该模块即可,无需另行安装。 web server(比如说nginx)只是内容的分发者。比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。好了,如果现在请求的是/index.php,根据配置文件,nginx知道这个不是静态文件,需要去找PHP解析器来处理,那么他会把这个请求简单处理后交给PHP解析器。Nginx会传哪些数据给PHP解析器呢?url要有吧,查询字符串也得有吧,POST数据也要有,HTTP header不能少吧,好的,CGI就是规定要传哪些数据、以什么样的格式传递给后方处理这个请求的协议。仔细想想,你在PHP代码中使用的用户从哪里来的。 当web server收到/index.php这个请求后,会启动对应的CGI程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以规定CGI规定的格式返回处理后的结果,退出进程

php-fpm慢查询日志

给你一囗甜甜゛ 提交于 2020-03-27 20:37:22
因为php引擎自己不带监控慢查询的功能,因此您如果选择的是php-fpm作为终端来调用php引擎,那么我们这里介绍php-fpm监控php处理请求的慢查询日志方法。 php-fpm配置选项: "slowlog" - logging scripts (not just their names, but their PHP backtraces too, using ptrace and similar things to read remote process' execute_data) that are executed unusually slow; request_slowlog_timeout mixed The timeout for serving a single request after which a PHP backtrace will be dumped to the 'slowlog' file. A value of '0' means 'Off'. Available units: s(econds)(default), m(inutes), h(ours), or d(ays). Default value: 0. 重启上面2个选项后,我们重启systemctl restart php-fpm后,就可以正常记录慢查询日志了。 慢查询日志记录格式案例:

Nginx+PHP-FPM时快时慢问题的解决

不问归期 提交于 2020-03-27 10:25:15
3 月,跳不动了?>>> 原因 : 一个测试环境,nginx+php-fpm对外提供服务,测试人员访问的时候出现时快时慢的情况,慢时超过了正常网页的等待打开时间范围。重启nginx php-fpm后恢复,访问几次后又会慢 查找思路 : 1,系统负载,磁盘IO top,查看负载,负载小于1 排除。 vmstat 查看磁盘io 测试环境 io较小,排除。 2,是否有php慢查询程序 打开php-fpm中php慢查询日志 request_slowlog_timeout = 5 slowlog = var/log/slow.log reload 访问之后无慢查询日志,判断无执行时间比较慢的php程序 检查该配置文件 pm = static pm.max_children = 300 pm.start_servers = 15 pm.min_spare_servers = 8 pm.max_spare_servers = 48 request_terminate_timeout = 200 排除是pm.max_children 设置过小引起的问题。 3,怀疑mysql有慢查询 网站时快时慢 重启之后打开统一页面较快,排除mysql有慢查询。此时陷入迷茫尴尬之中。 查看nginx配置文件 worker_rlimit_nofile 65535 偶然发现多么熟悉的数字,此处定义了限制打开的文件数量

linux下查看php-fpm是否开启?如何开启?

吃可爱长大的小学妹 提交于 2020-03-24 14:26:21
3 月,跳不动了?>>> 1、查看php-fpm是否开启 命令:ps -ef|grep php 结果如下: 这是没有开启。 2、查看php-fpm的位置 命令:whereis php-fpm 3、开启php-fpm 命令:/usr/local/bin/php-fpm 4、再次输入命令ps -ef|grep php,查看是否已经开启 这是已经开启了。 以上内容希望帮助到大家, 很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家 , 需要请戳这里 来源: oschina 链接: https://my.oschina.net/u/4234147/blog/3210135

http 502 和 504 的区别

蓝咒 提交于 2020-03-24 12:26:33
文章转载自: http 502 和 504 的区 首先看一下概念: 502:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。 503:由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。如果能够预计延迟时间,那么响应中可以包含一个 Retry-After 头用以标明这个延迟时间。如果没有给出这个 Retry-After 信息,那么客户端应当以处理500响应的方式处理它。 注意:503状态码的存在并不意味着服务器在过载的时候必须使用它。某些服务器只不过是希望拒绝客户端的连接。 504:作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。  注意:某些代理服务器在DNS查询超时时会返回400或者500错误. 通俗的来说,nginx作为一个代理服务器,将请求转发到其他服务器或者php-cgi来处理,当nginx收到了无法理解的响应时,就返回502。当nginx超过自己配置的超时时间还没有收到请求时,就返回504错误。 502 上面说到nginx收到了无法理解的响应,什么是无法理解的响应呢? nginx无法与php-fpm进行连接。 nginx在连接php-fpm一段时间后发现与php-fpm的连接被断开。

Docker 中 PHP-FPM 容器无法记录日志

こ雲淡風輕ζ 提交于 2020-03-23 17:04:17
3 月,跳不动了?>>> 最近遇到一个奇怪的问题,在docker的php容器中配置了启用慢日志: catch_workers_output = yes slowlog = /var/log/dnmp/php.slow.log request_slowlog_timeout = 1 s 但是 日志文件总是没记录 ,一直是空的。 最后在serverfault.com上找到答案: 在Linux系统中, PHP-FPM使用 SYS_PTRACE 跟踪worker进程 , 但是docker容器默认又不启用这个功能 ,所以就导致了这个问题。 知道了问题所在,解决起来就快了。 如果用 命令行 ,在命令上加上: --cap-add =SYS_PTRACE 如果用 docker-compose.yml 文件,在服务中加上: php : #... cap_add : - SYS_PTRACE #... 参考资料: PHP slowlog empty even though PHP-FPM says it's logging 来源: oschina 链接: https://my.oschina.net/jack088/blog/3209154

解决:502 bad gateway

一世执手 提交于 2020-03-21 16:34:16
3 月,跳不动了?>>> 502 Bad Gateway服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。 解决办法是:再刷新一下网页或清理一下电脑的缓冲文件在打开你想打开的网页就好了.(一般情况下,这种办法是行得通的,但也不排除你所访问的网页被屏蔽的可能,如果你所访问的网页被屏蔽的话,就不管你怎么刷新也是没用的了) 1.什么是502 bad gateway 报错 简单来说502是报错类型代码bad gateway错误的网关 2.产生502错误的原因 连接超时 我们向服务器器发送请求 由于服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错,具体如下: 第一个原因: DNS 缓冲。 这种情况的通常原因是因为你在未开启vpn的情况下访问了facebook这样的网站。 这个时候自然访问不上,同时却在本机留下了缓冲。 这种情况通常在几分钟之内就可以访问了。也可以尝试 在dos窗口运行 ipconfig /flushdns,该命令会刷新DNS缓冲。 第二个原因: 你的浏览器开了代理什么的。确认一下关掉代理。 第三个原因: dns 被劫持了,即使使用国外的dns,也会被劫持。有些机子开vpn能够访问,有些 机子确不能。并且排除了代理、防火墙、本地网络的原因。这个时候同时ping远程网站,比如facebook

LNMP架构介绍,MySQL与PHP安装,Nginx介绍

守給你的承諾、 提交于 2020-03-20 13:37:33
3 月,跳不动了?>>> LNMP架构介绍 和LAMP不同的是,提供web服务的是Nginx 并且php是作为一个独立服务存在的,这个服务叫做php-fpm Nginx直接处理静态请求,动态请求会转发给php-fpm MySQL重新安装 MySQL是通过免编译二进制安装包进行安装的,需要删除对应的目录后进行重装, 重装之前要先停止服务 [root@test-a ~]# ps -ef | grep mysql root 1449 1 0 14:35 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/usr/local/mysql/mysqld.pid mysql 1930 1449 0 14:35 ? 00:00:02 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/db.err --pid-file=/usr/local/mysql/mysqld.pid --socket=/usr/local

46.LNMP架构介绍 mysql及PHP-fpm安装 Nginx介绍

隐身守侯 提交于 2020-03-20 13:28:40
3 月,跳不动了?>>> 12.1 LNMP架构介绍 12.2 MySQL安装 12.3/12.4 PHP-fpm安装 12.5 Nginx介绍 扩展 Nginx为什么比Apache Httpd高效:原理篇 http://www.toxingwang.com/linux-unix/linux-basic/1712.html apache和nginx工作原理比较 http://www.server110.com/nginx/201402/6543.html mod_php 和 mod_fastcgi以及php-fpm的比较 http://dwz.cn/1lwMSd 概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM http://www.nowamagic.net/librarys/veda/detail/1319/ https://www.awaimai.com/371.html 12.1 LNMP架构介绍: ~1.和LAMP不同的是,提供web服务的是Nginx ~2.并且php是作为一个独立服务存在的,这个服务叫做php-fpm ~3.Nginx直接处理静态请求,动态请求会转发给php-fpm ~4.与Apache相比,Nginx在静态文件的交互上会比Apache快很多。用户并发支持会很大,上好几万,Apache做不到 12.2 MySQL安装:

php-fpm慢执行日志

别说谁变了你拦得住时间么 提交于 2020-03-18 18:22:05
vim /usr/local/php-fpm/etc/php-fpm.d/www.conf//加入如下内容 request_slowlog_timeout = 1 slowlog = /usr/local/php-fpm/var/log/www-slow.log 测试: /usr/local/php-fpm/sbin/php-fpm -t /etc/init.d/php-fpm reload ls ../../var/log/ //生成日志 php-fpm.log www-slow.log 配置nginx的虚拟主机test.com.conf,把unix:/tmp/php-fcgi.sock改为unix:/tmp/www.sock(可以不改sock) 重新加载nginx服务 vim /data/wwwroot/test.com/sleep.php//写入如下内容 <?phpecho "test slow log";sleep(2);echo "done";?> curl -x127.0.0.1:80 test.com/sleep.php cat /usr/local/php-fpm/var/log/www-slow.log [12-Dec-2017 17:45:14] [pool www] pid 58346 script_filename = /data/wwwroot/lsx