V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
boro
V2EX  ›  NGINX

php5-fpm 挂了, 502 Bad Gateway ~ /var/run/里的 php5-fpm.sock 消失了

  •  
  •   boro · 2015-10-04 20:11:10 +08:00 · 10397 次点击
    这是一个创建于 3348 天前的主题,其中的信息可能已经有所发展或是发生改变。
    又是烦人的 502 Bad Gateway ,

    根据日志发现先是报错:
    connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream...... upstream: "fastcgi://unix:/var/run/php5-fpm.sock:"

    ls /var/run/ 发现 php5-fpm.sock 这个文件不见了,那么就就重新建一个 php5-fpm.sock ,并赋予 660 权限,并 chown -R www-data:www-data php5-fpm.sock 。

    这里不知道/var/run/里的 php5-fpm.sock 为什么会不见了?

    这下再看日志,却报错为:

    unix:/var/run/php5-fpm.sock failed (111: Connection refused) while connecting to upstream, ......: "fastcgi://unix:/var/run/php5-fpm.sock:",

    这个试了很多方法都还是不能搞定,哪位朋友有遇到过这种情况的么?

    求分享个解决办法,谢谢!
    28 条回复    2015-10-06 20:56:03 +08:00
    yxwzaxns
        1
    yxwzaxns  
       2015-10-04 20:24:17 +08:00 via Android
    醉了,你以为建一个名字一样的文件就可以骗过去了,重启 fpm
    oott123
        2
    oott123  
       2015-10-04 20:26:55 +08:00 via Android
    今日最佳…
    不见了咱就建一个!多建几个多好~
    wkdhf233
        3
    wkdhf233  
       2015-10-04 20:28:11 +08:00
    今日最佳
    tntsec
        4
    tntsec  
       2015-10-04 20:32:36 +08:00   ❤️ 4
    自己创建这个文件是错误的做法
    正确的做法,配置 /etc/php-fpm.d/www.conf
    listen = /dev/shm/fpm-cgi.sock
    listen.backlog = 65535
    listen.owner = nginx
    listen.group = apache
    listen.mode = 0660

    这样他就会自己创建这个文件,并且固定权限。
    而且 shm 目录是内存目录,比 var 快的不是一点半点
    更重要是 listen.backlog = 65535 ,最大连接数,当然也可以配置上-1 ,表示无限
    BOYPT
        5
    BOYPT  
       2015-10-04 21:07:12 +08:00   ❤️ 1
    sock 文件只是一个符号,放在任何地方都一样,放 shm 没任何意义。
    loveminds
        6
    loveminds  
       2015-10-04 21:16:25 +08:00   ❤️ 1
    systemctl restart php5-fpm.service
    会自动重建 sock 文件
    cevincheung
        7
    cevincheung  
       2015-10-04 21:33:14 +08:00 via Android
    为什么我要笑😂
    boro
        8
    boro  
    OP
       2015-10-04 22:37:55 +08:00
    @tntsec 我是你这样配置的,我知道这个文件是自动,动态生成的,而且在确定它无法自建的情况,来创建一个。 N 种方法都试了,还是不行。
    111111111111
        9
    111111111111  
       2015-10-04 22:52:44 +08:00 via Android
    @boro unix socket 出问题 那不妨试试 tcp 端口?
    siw
        10
    siw  
       2015-10-04 23:13:27 +08:00
    笑了。。。

    你也先看看
    FPM 有没有
    配置是 tcp 还是 sock
    boro
        11
    boro  
    OP
       2015-10-04 23:36:09 +08:00
    @siw tcp 和 sock 都试了
    boro
        12
    boro  
    OP
       2015-10-05 01:17:20 +08:00
    @111111111111 试过,不过问题解决了。
    我修改过 php-fpm.conf 里面的一些设置,修改后,解决了。
    skylancer
        13
    skylancer  
       2015-10-05 01:24:30 +08:00
    看到自己创建 sock … 请原谅我笑了
    其实我建议从 Lighttpd 抓 Swpan-FCGI 用而不是用 PHP-FPM
    skydiver
        14
    skydiver  
       2015-10-05 05:50:24 +08:00
    @skylancer 现在还有用 spawn-fcgi 的?那个好久没更新了吧。业界都是用 php-fpm
    111111111111
        15
    111111111111  
       2015-10-05 08:05:20 +08:00 via Android
    @boro 何不分享一下怎么解决的?后人好有个借鉴
    sutking
        16
    sutking  
       2015-10-05 09:32:32 +08:00 via iPhone
    我特别想知道那东西是为什么神秘消失的???
    skylancer
        17
    skylancer  
       2015-10-05 09:58:25 +08:00
    @skydiver 没什么好更新的吧,黑猫白猫能抓老鼠就是好猫

    不过我也不怎么喜欢 NginX …
    boro
        18
    boro  
    OP
       2015-10-05 10:18:01 +08:00
    @111111111111
    这个根据实际环境的不同而不同不同吧。我修改这两项,解决了我的问题
    emergency_restart_threshold = 5
    emergency_restart_interval = 2
    gzlock
        19
    gzlock  
       2015-10-05 10:59:35 +08:00 via Android
    上 docker ,多开 PHP-fpm 镜像容灾
    NeoAtlantis
        20
    NeoAtlantis  
       2015-10-05 12:20:29 +08:00 via Android
    所以说装 PHP 干嘛,直接创建个 socket 名字的文件就好了……同理 MySQL 什么的也可以卸了
    skydiver
        21
    skydiver  
       2015-10-05 14:31:14 +08:00
    @skylancer 技术是会进步的,逆水行舟不进则退
    skylancer
        22
    skylancer  
       2015-10-05 14:38:19 +08:00
    @skydiver 容我说一句,照你这么说那使用 Lighttpd 的用户你还要再装个 PHP-FPM 咯
    skydiver
        23
    skydiver  
       2015-10-05 14:43:15 +08:00
    @skylancer 当然啊,这是推荐做法。装一个 php-fpm 又没什么麻烦的。
    skylancer
        24
    skylancer  
       2015-10-05 15:01:55 +08:00
    @skydiver 好吧
    jasontse
        25
    jasontse  
       2015-10-05 17:24:55 +08:00 via iPad
    查一下 php-fpm 的日志是什么原因崩溃
    tntsec
        26
    tntsec  
       2015-10-05 18:18:31 +08:00
    @boro 好了吗?怎么做的?
    boro
        27
    boro  
    OP
       2015-10-06 10:56:08 +08:00
    @tntsec 看我在 18 楼的回复。
    owt5008137
        28
    owt5008137  
       2015-10-06 20:56:03 +08:00 via Android
    重启 php-fpm 吧,这个 sock 文件是个流设备( unix sock )文件用来做 ipc 的。你自己只能建普通文件,是没有用的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2152 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 00:01 · PVG 08:01 · LAX 16:01 · JFK 19:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.