导航:首页 > 编程语言 > phpfpm超时

phpfpm超时

发布时间:2022-05-03 15:02:22

㈠ 网站php访问502 bad gateway请问php-fpm.conf如何配置

具体位置放在:打开 /usr/local/php/etc/php-fpm.conf 文件 把max_children由之前的10改为现在的30,这样就可以保证 有充足的php-cgi进程可以被使用; 把request_terminate_timeout由之前的0s改为60s,这样php-cgi进程 处理脚本的超时时间就是60

㈡ php 502 bad gateway怎么解决

目前lnmp一键安装包比较多的问题就是502 Bad Gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。
解决办法:可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么错误导致的。
在php.ini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway
在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。
php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300
磁盘空间不足,如mysql日志占用大量空间
查看php-cgi进程是否在运行
Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止,一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关。
php-fpm.conf有两个至关重要的参数,一个是max_children,另一个是request_terminate_timeout,但是这个值不是通用的,而是需要自己计算的。
在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。希望能帮到你,我还在后盾人线下面授培训上课学习呢现在没时间,有不会的可以问我,加油吧(^_−)

㈢ 如何修改 php-fpm的运行用户

第一种:一个php-fpm主进程

这种方式比较简单,也只需要一个php-fpm自启动文件。

首先我们查看一下原php-fpm.conf的这个配置文件,分为两个部分,一个是global块,另外一个是自定义的块,配置文件里面称为pool池,默认叫“www”。在global池的上方,有一行注释了的“include=etc/fpm.d/*.conf”配置项,再通过www池的配置,我们可知可以通过不同的池来配置不同的用户,来达到多个用户运行php-fpm的目的,步骤如下:

4、删除前面的global块,或者注释掉。

5、修改[www]为其他,比如你[blog]。

6、配置[blog]池,主要修改两个地方:

6.1:第一处为运行的用户和用户组。

即将

12user = www3group = www4。

修改为

12user=nobody #具体用哪个用户视自己情况而定,我只做个示例3group=nobody4。

6.2:修改监听的端口或者socket:

即将:

12listen = 127.0.0.1:90003。

修改为:

12listen = /var/socket/php-fpm/blog.socket #php-fpm需要自己创建,当然也可以直接放在php-fpm目录下3。

修改成其他端口也是可以的,比如:listen = 127.0.0.1:9001。

7、到主配置文件 php-fpm.conf将“include=…”前面的注释去掉,让它去读取fpm.d目录下的配置文件。

8、到此第一种方案就修改完毕了,重新启动测试一下:

12service php-fpm reload3。

第二种:两个php-fpm主进程。

这种方法需要独立的配置文件和独立的自启动文件:

1、复制一份php-fpm.conf主配置文件。

12cp php-fpm.conf php-fpm-blog.conf3。

2、修改主配置文件。

12vim php-fpm-blog.conf3。

2.1:修改[global]下pid和error_log文件的路径。

修改 pid=run/php-fpm.pid 为 pid=run/php-fpm-blog.pid 。

修改 error_log = /log/php-fpm.log 为 error_log = /log/php-fpm-blog.log。

2.2:修改池的名称[www]为[blog],不过这个可以不用修改了,因为这里和原来的进程是独立的。

2.3:修改用户和用户组。

2.4:监听端口或socket文件。

以上两部可以按照第一种方案进行修改,这里就不再重复。

3、进入/etc/init.d目录,复制一份自启动文件。

12cp php-fpm php-fpm23。

4、修改自启动文件php-fpm2:

4.1:修改配置文件路径。

12php_fpm-CONF=${prefix}/etc/php-fpm.conf3。

12php_fpm-CONF=${prefix}/etc/php-fpm-blog.conf3。

这个路径就是刚才的主配置文件。

4.2:修改PID文件路径:

12php_fpm_PID=${prefix}/var/run/php-fpm.pid3。

为:

12php_fpm_PID=${prefix}/var/run/php-fpm-blog.pid3。

这个路径要和主配置文件中的pid路径一致。

5、修改完毕后添加自动启动。

12chkconfig --add php-fpm23chkconfig --level 2345 php-fpm2 on4。

6、启动服务。

㈣ rpm包安装的php,php-fpm.conf在哪

具体位置放在:打开 /usr/local/php/etc/php-fpm.conf 文件

把max_children由之前的10改为现在的30,这样就可以保证 有充足的php-cgi进程可以被使用;
把request_terminate_timeout由之前的0s改为60s,这样php-cgi进程 处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。

㈤ php-fpm 没有响应,僵死,求教

日志提示明显是脚本执行超时,这些问题通常出现的原因有:
1、大量的IO操作(文件读写、数据库操作等),代码循环逻辑没控制好,执行时间超时;
2、系统的负载过高,脚本受阻塞长时间等待超时;
3、php环境没配置好。

㈥ Linux子系统下配置nginx和php-fpm,但phpinfo()信息无法显示完整报错110: Connection timed out

能显示出来 说明已经把环境搭建好了

㈦ php-fpm 初始化失败

你的9000端口已经被别的程序给占用了,换个端口或者找到占用9000端口的程序给他关掉,再尝试启动php-fpm

㈧ 启动php-fpm时是怎么加载php.ini

php.ini:决定php语言运行的环境,支持扩展的模块,开发环境的配置

php-fpm.conf:进程控制管理器配置文件,控制php-cgi的进程数,常驻内存,提高web服务的响应速率,php-cgi运行时会加载这两个配置文件。

㈨ php-fpm子进程会自动重启吗

服务器出现异常,网站不能正常访问。经排查�php的问题。
在重启php-fpm时,恢复正常。1分钟之后又出现故障。查看php日志文件/usr/local/php/var/log 后提示
WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
子进程数已经达到设置的最大值。
要设置php进程数量。需要在php-fpm.conf文件中修改。
先看/usr/local/php/etc/php-fpm.conf文件各项配置解析
pid = run/php-fpm.pid
#pid设置,默认在安装目录中的var/run/php-fpm.pid,建议开启
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(天) 默认单位: s(秒). 默认值: 0.
daemonize = yes
#后台执行fpm,默认值为yes,如果为了调试可以改为no。在FPM中,可以使用不同的设置来运行多个进程池。 这些设置可以针对每个进程池单独设置。
listen = 127.0.0.1:9000
#fpm监听端口,即nginx中php处理的地址,一般默认值即可。可用格式为: ‘ip:port’, ‘port’, ‘/path/to/unix/socket’. 每个进程池都需要设置.
listen.backlog = -1
#backlog数,-1表示无限制,由操作系统决定,此行注释掉就行。backlog含义参考:
http://www.3gyou.cc/?p=41
listen.allowed_clients = 127.0.0.1
#允许访问FastCGI进程的IP,设置any为不限制IP,如果要设置其他主机的nginx也能访问这台FPM进程,listen处要设置成本地可被访问的IP。默认值是any。每个地址是用逗号分隔. 如果没有设置或者为空,则允许任何服务器请求连接
listen.owner = www
listen.group = www
listen.mode = 0666
#unix socket设置选项,如果使用tcp方式访问,这里注释即可。
user = www
group = www
#启动进程的帐户和组
pm = dynamic #对于专用服务器,pm可以设置为static。
#如何控制子进程,选项有static和dynamic。如果选择static,则由pm.max_children指定固定的子进程数。如果选择dynamic,则由下开参数决定:
pm.max_children #,子进程最大数
pm.start_servers #,启动时的进程数
pm.min_spare_servers #,保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers #,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
pm.max_requests = 1000
#设置每个子进程重生之前服务的请求数. 对于可能存在内存泄漏的第三方模块来说是非常有用的. 如果设置为 ’0′ 则一直接受请求. 等同于 PHP_FCGI_MAX_REQUESTS 环境变量. 默认值: 0.
pm.status_path = /status
#FPM状态页面的网址. 如果没有设置, 则无法访问状态页面. 默认值: none. munin监控会使用到
ping.path = /ping
#FPM监控页面的ping网址. 如果没有设置, 则无法访问ping页面. 该页面用于外部检测FPM是否存活并且可以响应请求. 请注意必须以斜线开头 (/)。
ping.response = pong
#用于定义ping请求的返回相应. 返回为 HTTP 200 的 text/plain 格式文本. 默认值: pong.
request_terminate_timeout = 0
#设置单个请求的超时中止时间. 该选项可能会对php.ini设置中的’max_execution_time’因为某些特殊原因没有中止运行的脚本有用. 设置为 ’0′ 表示 ‘Off’.当经常出现502错误时可以尝试更改此选项。
request_slowlog_timeout = 10s
#当一个请求该设置的超时时间后,就会将对应的PHP调用堆栈信息完整写入到慢日志中. 设置为 ’0′ 表示 ‘Off’
slowlog = log/$pool.log.slow
#慢请求的记录日志,配合request_slowlog_timeout使用
rlimit_files = 1024
#设置文件打开描述符的rlimit限制. 默认值: 系统定义值默认可打开句柄是1024,可使用 ulimit -n查看,ulimit -n 2048修改。
rlimit_core = 0
#设置核心rlimit最大限制值. 可用值: ‘unlimited’ 、0或者正整数. 默认值: 系统定义值.
chroot =
#启动时的Chroot目录. 所定义的目录需要是绝对路径. 如果没有设置, 则chroot不被使用.
chdir =
#设置启动目录,启动时会自动Chdir到该目录. 所定义的目录需要是绝对路径. 默认值: 当前目录,或者/目录(chroot时)
catch_workers_output = yes
#重定向运行过程中的stdout和stderr到主要的错误日志文件中. 如果没有设置, stdout 和 stderr 将会根据FastCGI的规则被重定向到 /dev/null . 默认值: 空.
根据以上配置的解析,在php-fpm.conf文件中添加如下配置:
pm.max_children = 100
pm.start_servers = 30
pm.min_spare_servers = 20
pm.max_spare_servers = 100
以观后效。
另附豆瓣技术贴:https://www.douban.com/note/315222037/
1、php-fpm优化参数介绍
他们分别是:pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers。
pm:表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。
在更老一些的版本中,dynamic被称作apache-like。这个要注意看配置文件的说明。
下面4个参数的意思分别为:
pm.max_children:静态方式下开启的php-fpm进程数量
pm.start_servers:动态方式下的起始php-fpm进程数量
pm.min_spare_servers:动态方式下的最小php-fpm进程数
pm.max_spare_servers:动态方式下的最大php-fpm进程数量
区别:
如果dm设置为 static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。
如果dm设置为 dynamic,那么pm.max_children参数失效,后面3个参数生效。
系统会在php-fpm运行开始 的时候启动pm.start_servers个php-fpm进程,
然后根据系统的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数
2、服务器具体配置
对于我们的服务器,选择哪种执行方式比较好呢?事实上,跟Apache一样,运行的PHP程序在执行完成后,或多或少会有内存泄露的问题。
这也是为什么开始的时候一个php-fpm进程只占用3M左右内存,运行一段时间后就会上升到20-30M的原因了。
对于内存大的服务器(比如8G以上)来说,指定静态的max_children实际上更为妥当,因为这样不需要进行额外的进程数目控制,会提高效率。
因为频繁开关php-fpm进程也会有时滞,所以内存够大的情况下开静态效果会更好。数量也可以根据 内存/30M 得到,比如8GB内存可以设置为100,
那么php-fpm耗费的内存就能控制在 2G-3G的样子。如果内存稍微小点,比如1G,那么指定静态的进程数量更加有利于服务器的稳定。
这样可以保证php-fpm只获取够用的内存,将不多的内存分配给其他应用去使用,会使系统的运行更加畅通。
对于小内存的服务器来说,比如256M内存的VPS,即使按照一个20M的内存量来算,10个php-cgi进程就将耗掉200M内存,那系统的崩溃就应该很正常了。
因此应该尽量地控制php-fpm进程的数量,大体明确其他应用占用的内存后,给它指定一个静态的小数量,会让系统更加平稳一些。或者使用动态方式,
因为动态方式会结束掉多余的进程,可以回收释放一些内存,所以推荐在内存较少的服务器或VPS上使用。具体最大数量根据 内存/20M 得到。
比如说512M的VPS,建议pm.max_spare_servers设置为20。至于pm.min_spare_servers,则建议根据服务器的负载情况来设置,比如服务器上只是部署php环境的话,比较合适的值在5~10之间。
本服务器配置
1、服务器基本信息:
硬盘:数据盘30G、系统盘20G
内存:1.5G
CPU:双核
系统:CentOS 6.3 64位
带宽:独享2M
2、部署的应用
Git、SVN、Apache、Tomcat、PHP、Nginx、mysql、JDK
3、优化后的参数
pm = dynamic
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8

㈩ 访问php页面出现504 Gateway Timeout 怎么解决

一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out
现在的网站, 尤其某些论坛有大量的回复和很多内容的, 一个页面甚至有几百K
默认的fastcgi进程响应的缓冲区是8K, 我们可以设置大点
在nginx.conf里, 加入:
fastcgi_buffers 8 128k
这表示设置fastcgi缓冲区为8×128k
当然如果在进行某一项即时的操作, 可能需要nginx的超时参数调大点, 例如设置成60秒:
send_timeout 60;
只是调整了这两个参数, 结果就是没有再显示那个超时, 可以说效果不错
另一篇文章
首先是更改php-fpm的几处配置:
把max_children由之前的10改为现在的30,这样就可以保证 有充足的php-cgi进程可以被使用;
把request_terminate_timeout由之前的0s改为60s,这样php-cgi进程 处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。
接着再更改nginx的几个配置项,减少FastCGI的请求次 数,尽量维持buffers不变:
fastcgi_buffers由 4 64k 改为 2 256k;
fastcgi_buffer_size 由 64k 改为 128K;
fastcgi_busy_buffers_size 由 128K 改为 256K;
fastcgi_temp_file_write_size 由 128K 改为 256K。
好了,重新加载php-fpm和nginx的配置,再次测试,至今两周时间内没有再出现504 Gateway Time-out的情况,算是达到效果了。
另外,php-fpm的默认静态处理方式会使得php-cgi的进程长期占用内存而无法释放,这也是导致nginx出错的原因之一,因此可以将php-fpm的处理方式改成apache模式。
apache-like

阅读全文

与phpfpm超时相关的资料

热点内容
职业生涯pdf 浏览:953
ubuntu安装软件php 浏览:158
黑马程序员退学流程 浏览:361
网页服务器崩溃怎么回事 浏览:650
cnc编程前景怎么样 浏览:319
lniux命令详解 浏览:493
linuxmysql查询日志 浏览:368
老捷达伙伴压缩比 浏览:93
改后缀加密 浏览:432
邮局选址问题算法 浏览:14
河北服务器内存云主机 浏览:12
在电脑上怎么找到加密狗图标 浏览:435
电脑的浏览器怎么打开pdf文件怎么打开 浏览:142
pdf卡片库下载 浏览:11
单片机中二进制表示什么 浏览:725
java网络编程推荐 浏览:795
施耐德开关编程 浏览:66
组织胚胎学pdf 浏览:844
linux查看发包 浏览:496
加密货币交易所暴利时代 浏览:824