调试php时网站出现502的解决方法

这是第二次遇到该问题了,上次解决后因为没有记录,结果这次遇到后又得重新查找解决方法。记忆力严重减退了啊,还是要保持边学边记录的习惯


网站在正常运行时是没有问题的,但是在使用xdebug进行远程调试时,可能会因为单步调试,查看内存,分析数据等情况耗时太长,导致页面出现502。这时候虽然还可以进行单步调试,但是已经看不到内存数据了(因为进程已经结束)。于是又得重新调试,调试过程中仍然无法避免调试时间过长,页面继续502。。。


观察了下页面502的响应时长,发现每次都是30s过一点。猜测可能是服务器的配置文件设置了30s的超时时间,于是依次查找了nginx.conf,php-fpm.conf,php.ini(这三个文件原先使用默认配置)。发现nginx.conf里没有30s的配置,php-fpm.conf和php.ini里都有30s的配置。最后实验得出结论:只需要修改php-fpm.conf的request_terminate_timeout值就可以解决超时页面显示502的问题。


php-fpm.conf配置说明

; The timeout for serving a single request after which the worker process will
; be killed. This option should be used when the 'max_execution_time' ini option
; does not stop script execution for some reason. A value of '0' means 'off'.
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
request_terminate_timeout = 0


php.in配置说明

; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 30

你可能感兴趣的:(调试php时网站出现502的解决方法)