Erro misterioso com o php5-fpm

7

Estou tendo um caso muito difícil com o último php5-fpm (do debphp) e o nginx 1.4.3 no Ubuntu 12.04LTS.

Em suma, não consigo iniciar php5-fp , continuo recebendo este erro no syslog:

kernel: [1213013.564441] init: php5-fpm main process (7357) terminated with status 78
kernel: [1213013.564496] init: php5-fpm main process ended, respawning
..... (repeated several times)
kernel: [1213014.143911] init: php5-fpm respawning too fast, stopped

Meu /var/log/php5-fpm.log não está preenchido. Não há php5-fpm.sock e php5-fpm.pid em /run (ou /var/run ).

Meu /etc/php5/fpm/php-fpm.conf está abaixo: (este arquivo não parece estar carregado agora, já que tentei colocar algumas informações falsas nele, mas não causou nenhuma alteração)

;;;;;;;;;;;;;;;;;;;;;
; FPM Configuration ;
;;;;;;;;;;;;;;;;;;;;;

include=/etc/php5/fpm/*.conf

;;;;;;;;;;;;;;;;;;
; Global Options ;
;;;;;;;;;;;;;;;;;;

[global]
; Pid file
; Note: the default prefix is /var
; Default Value: none
pid = /run/php5-fpm.pid
catch_workers_output = yes


; Log level
; Possible Values: alert, error, warning, notice, debug
; Default Value: notice
log_level = debug

; To configure the pools it is recommended to have one .conf file per
; pool in the following directory:
include=/etc/php5/fpm/pool.d/*.conf
include=/var/www/vhosts/mysite.com/w/w/w/www/config/fpm-pool.conf

Verificação de permissão:

ls -l /etc/php5/fpm/php-fpm.conf

-rwxrwxrwx 1 root root 4641 Nov  6 01:37 /etc/php5/fpm/php-fpm.conf

Meu include=/var/www/vhosts/mysite.com/w/w/w/www/config/fpm-pool.conf (este arquivo parece não estar mais carregado)

[www.mysite.com]
    listen                 = /run/php5-fpm.sock
#    listen                = 127.0.0.1:9000
    listen.backlog         = -1
    listen.allowed_clients = 127.0.0.1
    listen.owner           = www.mysite.com
    listen.group           = mysite.com
    listen.mode            = 0666

    user  = www.mysite.com
    group = mysite.com

    pm                   = dynamic
    pm.max_requests      = 0
    pm.max_children      = 15
    pm.start_servers     = 2
    pm.min_spare_servers = 1
    pm.max_spare_servers = 3

    pm.status_path       = /php_pool_wwww.mysite.com_status
    ping.path            = /www.mysite.com_ping
    ping.response        = www.mysite.com_pong

    request_terminate_timeout = 30
    request_slowlog_timeout   = 20
    slowlog                   = /var/www/vhosts/mysite.com/w/w/w/www/logs/php-slow.log

    rlimit_files = 131072
    rlimit_core = unlimited

     chroot = /var/www/vhosts/mysite.com/w/w/w/www/
    ; Chdir to this directory at the start. This value must be an absolute path.
    ; Default Value: current directory or / when chroot
    ; chdir = /htdocs

    catch_workers_output = yes

    env[HOSTNAME] = $HOSTNAME
    env[TMP]      = /tmp
    env[TMPDIR]   = /tmp
    env[TEMP]     = /tmp

    security.limit_extension = .php
    ;   php_value/php_flag             - you can set classic ini defines which can
    ;                                    be overwritten from PHP call 'ini_set'.
    ;   php_admin_value/php_admin_flag - these directives won't be overwritten by
    ;                                     PHP call 'ini_set'
    php_flag[display_errors]            = on
    php_admin_value[error_log]          = /logs/php_err.log
    php_admin_flag[log_errors]          = on
    php_admin_value[memory_limit]       = 100M
    php_value[max_execution_time]       = 300

Verificação de permissão:

ls -l /var/www/vhosts/mysite.com/w/w/w/www/config/fpm-pool.conf

-rwxr-xr-x 1 www.mysite.com mysite.com 1830 Nov  6 01:05 var/www/vhosts/mysite.com/w/w/w/www/config/fpm-pool.conf

Verificação de permissão de usuário / grupo:

groups www.mysite.com

www.mysite.com : www.mysite.com www-data mysite.com

Eu não acho que isso tenha algo a ver com o nginx porque php5-fpm em si não pode começar de qualquer forma agora, mas para ter todas as informações: nginx também está configurado para usar o mesmo usuário / grupo

    
por mr1031011 05.11.2013 / 19:42

2 respostas

9

O processo que o upstart assistia morreu, mas os trabalhadores da piscina ainda estão em operação. Para corrigir isso, execute:

sudo killall php-fpm
sudo start php5-fpm

O job php5-fpm repetidamente sairá com o status 78 até que todos os threads de trabalho antigos estejam mortos. Observe que o servidor geralmente é funcional nesse estado, mesmo que o upstart não esteja gerenciando o serviço. Quando finalmente morre, não vai reaparecer automaticamente, então deve ser corrigido o mais rápido possível. Uma simples reinicialização também corrigirá o problema, mas resultará em tempo de inatividade.

    
por 24.01.2014 / 18:37
0

Recentemente encontrei esse mesmo problema. Acontece que outro processo já estava escutando na mesma porta. Para descobrir qual processo estava em execução, executei o seguinte comando:

sudo netstat -nltp

Acontece que hhvm já estava escutando na porta 9000.

tcp6       0      0 :::9000                 :::*                    LISTEN      17765/hhvm      

Assim que eu parei o daemon hhvm, o php5-fpm foi iniciado com sucesso.

    
por 12.03.2015 / 16:16