hub - ¿Por qué PHP-FPM prefija una advertencia al escribir en stdout?
laravel docker (1)
Intento ejecutar una aplicación PHP basada en Yii en un contenedor Docker usando la imagen oficial de php-fpm .
Es una práctica común que los contenedores docker escriban todos los mensajes de registro en stdout
/ stderr
. Así que hago lo mismo desde mi contenedor con un código que básicamente se ve así:
$fp = @fopen(''php://stdout'',''w'');
fwrite($fp, $message);
fclose($fp);
Desafortunadamente, PHP-FPM ahora prefija todos mis mensajes de registro con feos avisos:
[21-Mar-2016 14:10:02] ADVERTENCIA: [grupo www] el niño 12 dijo en la salida estándar: "2016-03-21 14:10:02 [xxxx] [-] [-] [trace] [yii / base / Application :: bootstrap] Bootstrap con yii / debug / Module :: bootstrap () "[21-Mar-2016 14:10:02] ADVERTENCIA: [grupo www] child 12 dijo en stdout:" 2016-03-21 14:10:02 [xxxx] [-] [-] [info] [yii / web / Session :: open] La sesión comenzó "...
¿Por qué es esto y hay una manera de evitar que PHP-FPM haga esto?
ACTUALIZAR:
- También he abierto un problema en el sitio del proyecto docker-library/php .
- Ya incluyen
catch_workers_output = yes
en su configuración . Así que esa no es la solución. - De acuerdo con estos cambios, el problema debería solucionarse en PHP 7.3.
Es correcto. está ejecutando php-fpm y los registros de errores son de php-fpm, no de PHP. debe esperar el registro php-fpm, no el registro php. afortunadamente, php-fpm escribirá cada registro que se recibió de PHP al final de sus registros.