8

我们正在使用 php5-fpm 和 nginx。

    # nginx -v
    nginx版本:nginx/1.1.19
    
*

    # php -v
    带有 Suhosin-Patch (cli) 的 PHP 5.3.27-1~dotdeb.0(构建时间:2013 年 7 月 25 日 19:30:39)
    版权所有 (c) 1997-2013 PHP 集团
    Zend Engine v2.3.0,版权所有 (c) 1998-2013 Zend Technologies
        使用 Xdebug v2.2.3,版权所有 (c) 2002-2013,作者 Derick Rethans

*

得到以下错误,

    2013/08/21 20:00:20 [错误] 12740#0: *46 recv() 在从上游读取响应标头时失败(104:对等方重置连接),客户端:172.17.7.12,服务器:fe.test。本地,请求:“GET /search?gender=female&ageFrom=20&ageTo=32&religionId=&casteId=&countryId=&heightFrom=&heightTo=&profileImageStatus=%28y+p%29&search=Search HTTP/1.1”,上游:“fastcgi://unix:/ var/run/php5-fpm.sock:”,主机:“fe.test.local”,引用者:“http://fe.test.local/

PHP5-FPM 配置,

    # grep ^[^\;] /etc/php5/fpm/php-fpm.conf

    [全球的]
    pid = /var/run/php5-fpm.pid
    error_log = /var/log/php5-fpm.log
    log_level = 通知
    进程控制超时 = 30
    包括=/etc/php5/fpm/pool.d/*.conf

    # grep ^[^\;] /etc/php5/fpm/pool.d/www.conf
    [万维网]
    听 = /var/run/php5-fpm.sock
    听积压 = -1
    用户 = www-数据
    组 = www-数据
    下午 = 动态
    pm.max_children = 10
    pm.start_servers = 4
    pm.min_spare_servers = 2
    pm.max_spare_servers = 6
    rlimit_files = 131072
    rlimit_core = 无限制
    chdir = /

Nginx fascgi 配置部分

    位置 ~ \.php$                                                             
      {                                                                             
      fastcgi_index index.php;                                              
      包括 fastcgi_params;                                               
      fastcgi_connect_timeout 120;                                           
      fastcgi_send_timeout 600;                                             
      fastcgi_read_timeout 600;                                             
      fastcgi_buffers 8 256k;                                               
      fastcgi_buffer_size 256k;                                             
      fastcgi_busy_buffers_size 256k;                                       
      fastcgi_temp_file_write_size 256k;                                    
      client_max_body_size 20M;                                             
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;     
      #fastcgi_pass 127.0.0.1:9000;                                          
      fastcgi_pass unix:/var/run/php5-fpm.sock;
    }               

    # strace -f -s 8000 -p 12761
    附加进程 12761 - 中断退出
    epoll_wait(9, {}, 1, 944) = 0
    epoll_wait(9, {}, 1, 1000) = 0
    epoll_wait(9, {}, 1, 1000) = 0
    epoll_wait(9, 269f530, 1, 1000) = -1 EINTR(中断的系统调用)
    --- SIGCHLD(孩子退出)@ 0 (0) ---
    写(6,“C”,1)= 1
    rt_sigreturn(0x6) = -1 EINTR(中断的系统调用)
    epoll_wait(9, {{EPOLLIN, {u32=15427040, u64=15427040}}}, 1, 122) = 1
    读取(4,“C”,1)= 1
    wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 127}], WNOHANG|WSTOPPED, NULL) = 12826
    写(3,“[2013 年 8 月 21 日 19:33:37] 警告:[池 www] 孩子 12826 在 275.844033 秒后以代码 127 退出\n”,112)= 112
    克隆(附加进程 12832(等待父进程)
    进程 12832 恢复(父进程 12761 就绪)
    child_stack=0,标志=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,child_tidptr=0x7fd7a31cfa10) = 12832
    [pid 12832] set_robust_list(0x7fd7a31cfa20, 0x18) = 0
    [pid 12832] dup2(1, 2) = 2
    [pid 12832] 关闭(3)= 0
    [pid 12832] dup2(7, 0) = 0
    [pid 12832] geteuid() = 0
    [pid 12832] setrlimit(RLIMIT_NOFILE, {rlim_cur=128*1024, rlim_max=128*1024}) = 0
    [pid 12832] setrlimit(RLIMIT_CORE, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
    [pid 12832] chdir("/") = 0
    [pid 12832] setgid(33) = 0
    [pid 12832] open("/proc/sys/kernel/ngroups_max", O_RDONLY) = 3
    [pid 12832] 读取(3,“65536\n”,31)= 6
    [pid 12832] 关闭(3)= 0
    [pid 12832] open("/etc/group", O_RDONLY|O_CLOEXEC) = 3
    [pid 12832] lseek(3, 0, SEEK_CUR) = 0
    [pid 12832] fstat(3, {st_mode=S_IFREG|0644, st_size=777, ...}) = 0
    [pid 12832] mmap(NULL, 777, PROT_READ, MAP_SHARED, 3, 0) = 0x7fd7a31c1000
    [pid 12832] lseek(3, 777, SEEK_SET) = 777
    [pid 12832] fstat(3, {st_mode=S_IFREG|0644, st_size=777, ...}) = 0
    [pid 12832] munmap(0x7fd7a31c1000, 777) = 0
    [pid 12832] 关闭(3)= 0
    [pid 12832] setgroups(1, [33]) = 0
    [pid 12832] setuid(33) = 0
    [pid 12832] prctl(PR_SET_DUMPABLE, 1) = 0
    [pid 12832] 关闭(4)= 0
    [pid 12832] 关闭(6)= 0
    [pid 12832] rt_sigaction(SIGTERM, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12832] rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12832] rt_sigaction(SIGUSR1, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12832] rt_sigaction(SIGUSR2, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12832] rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12832] rt_sigaction(SIGQUIT, {0x7633f0, [], SA_RESTORER|SA_RESTART, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12832] 关闭(7) = 0
    [pid 12832] 接受(0,  
    [pid 12761] 写入(3,“[2013 年 8 月 21 日 19:33:37] 通知:[池 www] 孩子 12832 已启动\n”,62)= 62
    [pid 12761] wait4(-1, 0x7fff07258a7c, WNOHANG|WSTOPPED, NULL) = 0
    [pid 12761] read(4, 0x7fff07258b5f, 1) = -1 EAGAIN (资源暂时不可用)
    [pid 12761] epoll_wait(9, {}, 1, 108) = 0
    [pid 12761] epoll_wait(9, {}, 1, 1000) = 0
    [pid 12761] epoll_wait(9, 269f530, 1, 1000) = -1 EINTR(中断的系统调用)
    [pid 12761] --- SIGCHLD(孩子退出)@ 0 (0) ---
    [pid 12761] 写(6,“C”,1)= 1
    [pid 12761] rt_sigreturn(0x6) = -1 EINTR(中断的系统调用)
    [pid 12761] epoll_wait(9, {{EPOLLIN, {u32=15427040, u64=15427040}}}, 1, 769) = 1
    [pid 12761] 读取(4,“C”,1)= 1
    [pid 12761] wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 127}], WNOHANG|WSTOPPED, NULL) = 12830
    [pid 12761] 写入(3,“[2013 年 8 月 21 日 19:33:39] 警告:[pool www] 孩子 12830 在开始后 10.053632 秒后退出,代码 127\n”,111)= 111
    [pid 12761] 克隆(附加进程 12833
    child_stack=0,标志=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,child_tidptr=0x7fd7a31cfa10) = 12833
    [pid 12761] write(3, "[21-Aug-2013 19:33:39] 注意:[pool www] 孩子 12833 开始\n", 62) = 62
    [pid 12761] wait4(-1, 0x7fff07258a7c, WNOHANG|WSTOPPED, NULL) = 0
    [pid 12761] read(4, 0x7fff07258b5f, 1) = -1 EAGAIN (资源暂时不可用)
    [pid 12761] epoll_wait(9,  
    [pid 12833] set_robust_list(0x7fd7a31cfa20, 0x18) = 0
    [pid 12833] dup2(1, 2) = 2
    [pid 12833] 关闭(3)= 0
    [pid 12833] dup2(7, 0) = 0
    [pid 12833] geteuid() = 0
    [pid 12833] setrlimit(RLIMIT_NOFILE, {rlim_cur=128*1024, rlim_max=128*1024}) = 0
    [pid 12833] setrlimit(RLIMIT_CORE, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
    [pid 12833] chdir("/") = 0
    [pid 12833] setgid(33) = 0
    [pid 12833] open("/proc/sys/kernel/ngroups_max", O_RDONLY) = 3
    [pid 12833] 读取(3,“65536\n”,31)= 6
    [pid 12833] 关闭(3)= 0
    [pid 12833] open("/etc/group", O_RDONLY|O_CLOEXEC) = 3
    [pid 12833] lseek(3, 0, SEEK_CUR) = 0
    [pid 12833] fstat(3, {st_mode=S_IFREG|0644, st_size=777, ...}) = 0
    [pid 12833] mmap(NULL, 777, PROT_READ, MAP_SHARED, 3, 0) = 0x7fd7a31c1000
    [pid 12833] lseek(3, 777, SEEK_SET) = 777
    [pid 12833] fstat(3, {st_mode=S_IFREG|0644, st_size=777, ...}) = 0
    [pid 12833] munmap(0x7fd7a31c1000, 777) = 0
    [pid 12833] 关闭(3)= 0
    [pid 12833] setgroups(1, [33]) = 0
    [pid 12833] setuid(33) = 0
    [pid 12833] prctl(PR_SET_DUMPABLE, 1) = 0
    [pid 12833] 关闭(4) = 0
    [pid 12833] 关闭(6) = 0
    [pid 12833] rt_sigaction(SIGTERM, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12833] rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12833] rt_sigaction(SIGUSR1, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12833] rt_sigaction(SIGUSR2, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12833] rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12833] rt_sigaction(SIGQUIT, {0x7633f0, [], SA_RESTORER|SA_RESTART, 0x7fd7a02234a0}, NULL, 8) = 0
    [pid 12833] 关闭(7)= 0
    [pid 12833] 接受(0,  
    [pid 12761] {}, 1, 766) = 0
    [pid 12761] epoll_wait(9, {}, 1, 1000) = 0`在此处输入代码`
    [pid 12761] epoll_wait(9, {}, 1, 1000) = 0

4

1 回答 1

17

上面的 nginx 错误表明该问题与 fastcgi(php-fpm) 有关。

在 /etc/php5/fpm/pool.d/www.conf 上启用“catch_workers_output”后,在 php5-fpm.log 上出现相关错误。现在了解该问题与 AMQP 模块有关。

[21-Aug-2013 23:32:57] 警告:[pool www] 子 16091 对 stderr 说:“php-fpm:pool www:符号查找错误:/usr/lib/php5/20090626/amqp.so:未定义符号:amqp_open_socket"

问题已在重新编译并安装 amqp 模块后得到修复

于 2013-08-27T12:32:57.953 回答