• 技术文章 >后端开发 >PHP问题

    php504错误怎么解决

    VV2020-06-30 13:48:25原创2892

    php504错误的解决方法:1、增加fastcgi进程响应的缓冲区大小;2、更改php环境配置,增加php-cgi进程处理脚本的超时时间;3、将php-fpm的处理方式改成apache模式。

    解决方法如下:

    情景一:

    由于nginx默认的fastcgi进程响应的缓冲区太小造成的错误

    解决方式:

    一般默认的fastcgi进程响应的缓冲区是8K,这时可以设置大一点,在nginx.conf里,加入:fastcgi_buffers 8 128k,这表示设置fastcgi缓冲区为8块128k大小的空间。

    当然如果在进行某一项即时的操作, 可能需要nginx的超时参数调大点,例如设置成60秒:send_timeout 60;经过这两个参数的调整,一般不会再提示“504 Gateway Time-out”错误,问题基本解决。

    情景二:

    PHP环境的配置问题

    有时候网站需要对php-fpm和nginx进行配置修改。因为这种情况下,也会出现“504 Gateway Time-out”错误提示。而这时候Nginx 504 Gateway Time-out的含义就是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI。

    解决方式:

    更改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的进程长期占用内存而无法释放,从而导致出现504错误。

    解决方式:

    将php-fpm的处理方式改成apache模式即可。

    如果您想学习更多相关知识,请访问php中文网

    以上就是php504错误怎么解决的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php 504
    上一篇:php为什么会出现504错误 下一篇:php的smarty模板引擎有哪些特点
    大前端线上培训班

    相关文章推荐

    • 504 gateway timeout什么意思• 504 gateway timeout 错误如何解决• 网络请求失败504是什么• php为什么会出现504错误

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网