php-fpm

51.php-fpm的pool 慢日志 open_basedir 进程管理

◇◆丶佛笑我妖孽 提交于 2020-03-18 17:37:19
3 月,跳不动了?>>> 12.21 php-fpm的pool 12.22 php-fpm慢执行日志(测试时报错) 12.23 open_basedir 12.24 php-fpm进程管理 12.21 php-fpm的pool: php-fpm里的pool也叫池子,咱们之前加入过www的配置,这个www就叫pool Nginx可以设置不同的站点,每个站点都可以设置不同的pool。好处是当齐总一个站点502了(资源耗尽了),如果所有的网站都使用了同一个池子,那么其中一个网站发生了故障,就会把资源耗尽,就会造成其他的站点502。所以有必要把每一个站点隔离开来,每一个站点使用单独的pool 设置多个pool的目的是,防止发生502(资源耗尽)。一个pool只能接受50个访问请求如果再有一个请求会502。另外的pool不受影响 vim /usr/local/php-fpm/etc/php-fpm.d///在[global]部分增加 include = etc/php-fpm.d/*.conf mkdir /usr/local/php-fpm/etc/php-fpm.d/ cd /usr/local/php/etc/php-fpm.d/ vim www.conf //内容如下 [www] listen = /tmp/www.sock //相应的在Nginx的虚拟主机文件里(php相关的)

linux php-fpm 优化 php-fpm.conf 、www.conf 重要参数详解

房东的猫 提交于 2020-03-18 17:27:46
3 月,跳不动了?>>> pid = run/php-fpm.pid #pid设置,默认在安装目录中的var/run/php-fpm.pid,建议开启 error_log = log/php-fpm.log #错误日志,默认在安装目录中的var/log/php-fpm.log error_log = log/php-fpm.log #错误日志,默认在安装目录中的var/log/php-fpm.log log_level = notice #错误级别. 可用级别为: alert(必须立即处理), error(错误情况), warning(警告情况), notice(一般重要信息), debug(调试信息). 默认: notice. emergency_restart_threshold = 60 emergency_restart_interval = 60s #表示在emergency_restart_interval所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过 emergency_restart_threshold个,php-fpm就会优雅重启。这两个选项一般保持默认值。 process_control_timeout = 0 #设置子进程接受主进程复用信号的超时时间. 可用单位: s(秒), m(分), h(小时), 或者 d(天) 默认单位:

一次502错误解决过程

假如想象 提交于 2020-03-17 16:10:42
某厂面试归来,发现自己落伍了!>>> 中午收到反馈,后台报502错误,进服务器,看到nginx 和 php-fpm 进程都在。看负载,发现CPU间歇性升高到99%,发现是 php artisan 的脚本在执行,进 /etc/cront 文件,将定时任务删除,负载降下来,但仍然502。 502 是网关错误,肯定是 nginx-cgi-php 之间的连接出了问题,先看nginx 的状态。 service nginx status Redirecting to /bin/systemctl status nginx.service ● nginx.service - nginx - high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since 六 2019-06-15 00:28:19 CST; 9 months 2 days ago Docs: http://nginx.org/en/docs/ Process: 23962 ExecReload=/bin/kill -s HUP $MAINPID (code=exited, status=0

zabbix 源码安装

拟墨画扇 提交于 2020-03-15 17:02:23
1. 下载地址 https://www. zabbix .com/download? zabbix =4.4&os_distribution=centos&os_version=7&db=mysql&ws=nginx 2.无法安装的yum 安装的时候带上-y 不然我去喝杯水回来,服务器都断开了 yum install zabbix-server-mysql zabbix-agent -y zabbix-server-mysql-4.4.6-1.el7.x86_64: [Errno 256] No more mirrors to try. zabbix-agent-4.4.6-1.el7.x86_64: [Errno 256] No more mirrors to try. 好好的官方软件步骤,安装出个这个问题,又是我们神奇的网络,无法连接。 第一步就走不走了,发现安装不下去。报错 试图修改,步骤 更换官方的源, 无效 cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) cd /etc/yum.repos.d wget http://mirrors.163.com/.help/CentOS7-Base-163.repo yum clean all yum makecache 无效 网上有说更换DNS能解决的

PHP Opcache的工作原理

独自空忆成欢 提交于 2020-03-14 16:09:53
PHP项目中,尤其是在高并发大流量的场景中,如何提升PHP的响应时间,是一项十分重要的工作。 而Opcache又是优化PHP性能不可缺失的组件,尤其是应用了PHP框架的项目中,作用更是明显。 1. 概述 在理解 OPCache 功能之前,我们有必要先理解PHP-FPM + Nginx 的工作机制,以及PHP脚本解释执行的机制。 1.1 PHP-FPM + Nginx 的工作机制 请求从Web浏览器到Nginx,再到PHP处理完成,一共要经历如下五个步骤: 第一步:启动服务 启动PHP-FPM。PHP-FPM 支持两种通信模式:TCP socket和Unix socket; PHP-FPM 会启动两种类型的进程:Master 进程 和 Worker 进程,前者负责监控端口、分配任务、管理Worker进程;后者就是PHP的cgi程序,负责解释编译执行PHP脚本。 启动Nginx。首先会载入 ngx_http_fastcgi_module 模块,初始化FastCGI执行环境,实现FastCGI协议请求代理 这里要注意:fastcgi的worker进程(cgi进程),是由PHP-FPM来管理,不是Nginx。Nginx只是代理 第二步:Request => Nginx Nginx 接收请求,并基于location配置,选择一个合适handler 这里就是代理PHP的 handler 第三步

centos php php-fpm install

徘徊边缘 提交于 2020-03-14 14:40:56
好记性不如烂笔头,把自己安装的步骤记录下来 1、下载php-5.2.8以及php-5.2.8-fpm-0.5.10.diff.gz,放到/usr/local/src目录 2、解压php-5.2.8到/usr/local/src/php-5.2.8 3、php-fpm打补丁 cd /usr/local/src gzip -cd php-5.2.8-fpm-0.5.10.diff.gz | patch -d php-5.2.8 -p1 4、安装一些必要的东西 1) yum -y install curl curl-devel 2) libmcrypt wget http://ncu.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz( 备注,这个版本安装始终报错,我换成2.5.7的就好,地址 ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz ) 编译时候报错 : configure: error: C++ compiler cannot create executables(没有安装c++) 解决方案: yum install gcc gcc-c++ gcc-g77 .

关于cgi、FastCGI、php-fpm、php-cgi(复制)

老子叫甜甜 提交于 2020-03-13 10:56:56
首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。 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规定的格式返回处理后的结果,退出进程。web server再把结果返回给浏览器。 好了,CGI是个协议,跟进程什么的没关系。那fastcgi又是什么呢?Fastcgi是用来提高CGI程序性能的。 提高性能,那么CGI程序的性能问题在哪呢?"PHP解析器会解析php.ini文件

转】关于cgi、FastCGI、php-fpm、php-cgi

风流意气都作罢 提交于 2020-03-13 10:55:45
首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。 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规定的格式返回处理后的结果,退出进程。web server再把结果返回给浏览器。 好了,CGI是个协议,跟进程什么的没关系。那fastcgi又是什么呢?Fastcgi是用来提高CGI程序性能的。 提高性能,那么CGI程序的性能问题在哪呢?"PHP解析器会解析php.ini文件

php CGI、Fastcgi、PHP-FPM的详细介绍与之间的关系

大兔子大兔子 提交于 2020-03-13 10:05:59
以下 PHP CGI、Fastcgi、PHP-FPM的一些信息归纳和汇总----->详细介绍与之间的关系 一:CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的 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规定的格式返回处理后的结果,退出进程。web server再把结果返回给浏览器。 二:CGI是个协议,跟进程什么的没关系;那fastcgi又是什么呢?Fastcgi是用来提高CGI程序性能的 提高性能

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

China☆狼群 提交于 2020-03-12 16:30:49
简述 在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文件地址。 //service php-fpm start生成.sock文件 location ~ \.php$ { include