个人504错误排查
个人504错误排查
-
一般出现500错误是由于php的语法错误引起的,权限的问题也有可能,laravel里面的storage和bootstrao/cache里面的权限没有修改就会500错误,其实都是php的语法问题,如果没有显示错误,可以尝试设
- error_reporting(E_ALL)和ini_set(‘display_errors’,’on’);
一般的502错误,是有Bad Gate Way引起的.如果nginx 调用的是php_fpm.sock文件则需要nginx 需要对这个文件有读写的权限.
- error_reporting(E_ALL)和ini_set(‘display_errors’,’on’);
-
504错误一般是由于请求超时造成的,nginx请求9000端口 或者sock文件.然后等待进程的响应,如果进程没有响应,则nginx 报504错误.
-
在lnmp环境下,php一般是独立进程存在的,一般占用9000端口,当我们访问一个主机的80端口的时候(nginx),nginx一般通过9000端口
php-fpm来执行php文件,php然后执行一些mysql的工作,所以报了504错误,先检查是不是静态页的问题,所以先让nginx执行一个静态文件,但是没有问题,随后,对mysql进行慢查询检查,发现也没有可疑的查询语句,然后对mysql进行错误的表进行查询,发现同样没有可疑的.最后排查php-fpm是不是php文件执行的其他的操作,最后检查到了QQ的第三方登录出现问题,Fsocket后如果连接上了,但是fsocket只可以实现连接不上的时间处理,但是无法实现连接上了,但是没有数据的返回的处理,所以要使用stream_s
et_timeout来实现连接上了,没有数据的返回,导致连续访问php文件,导致的php-fpm一直在停留着,没有多余的php-fpm来响应请求,而且内存也会被耗干.