
Estoy ejecutando Centos 7 con php-fpm 5.4. Me encuentro con un error SIGSEGV (señal 11) en mis registros de errores de php-fpm y quiero depurarlo.
He seguido el consejo dephp5 fpm: ¿cómo se genera un volcado de núcleo desde segfault?pero php-fpm todavía ni siquiera intenta generar volcados de núcleo. Del registro de errores de php-fpm:
WARNING: [pool website.com] child 26953 exited on signal 11 (SIGSEGV) after 0.931337 seconds from start
Si se hubiera generado un volcado de núcleo, se leería (SEGSEGV - core dumped)
pero no lo hace.
Respuesta1
También tuve problemas con esto. Parece que en centos el php-fpm
proceso maestro se inicia con privilegios de root, que luego inicia los grupos individuales con privilegios reducidos (usuario php-fpm
en centos de forma predeterminada).
El obstáculo para mí, y sospecho que para usted también, es que si un proceso ha cambiado sus propios privilegios de ejecución, no está permitido producir un archivo de volcado de núcleo a menos que /proc/sys/fs/suid_dumpable
esté configurado para permitirlo. Ver información sobre este control a nivel de kernelaquí.
Respuesta2
Pude resolver este problema con lo siguiente:
- Agregado al archivo /etc/systemd/system.conf:
DefaultLimitCORE=infinity
- Cambió el kernel.core_pattern:
sysctl kernel.core_pattern='| /usr/lib/systemd/systemd-coredump %p %u %g %s %t %c %e'
- Configuración systemd recargada:
systemctl daemon-reload
Como paso adicional para php-fpm, se debe configurar la siguiente directiva en los archivos individuales del grupo php-fpm que desea monitorear:
rlimit_core = ilimitado
El directorio predeterminado para el programa systemd-coredump es /var/lib/systemd/coredump
el que debería ver los archivos de volcado generados aquí.
Respuesta3
Usuario del conmutador PHP-FPM antes de iniciar los grupos. Por lo tanto, tuve que cambiar fs.suid_dumpable
a 1
como se mencionó en
https://itnext.io/linux-processes-core-dumps-systemd-coredump-and-debian-cf2ddb11ef9e
sysctl -w fs.suid_dumpable=1