Ответ 1
Это правильно. вы используете php-fpm, а журналы ошибок - php-fpm, а не PHP. вы должны ожидать журнал php-fpm, а не журнал php. к счастью, php-fpm напишет каждый журнал, полученный от PHP в конце своих журналов.
Я пытаюсь запустить приложение Yii на основе PHP в контейнере Docker, используя официальный php-fpm изображение.
Обычная практика для контейнеров-докеров для записи всех сообщений журнала на stdout
/stderr
. Поэтому я делаю то же самое из своего контейнера с кодом, который в основном выглядит следующим образом:
$fp = @fopen('php://stdout','w');
fwrite($fp, $message);
fclose($fp);
К сожалению, PHP-FPM теперь префикрует все мои сообщения журнала с уродливыми предупреждениями:
[21-Mar-2016 14:10:02] ПРЕДУПРЕЖДЕНИЕ: [пул www] ребенок 12 сказал в stdout: "2016-03-21 14:10:02 [xxxx] [-] [-] [trace] [yii\base\Application:: bootstrap] Bootstrap с yii\debug\Module:: bootstrap()" [21-Mar-2016 14:10:02] ПРЕДУПРЕЖДЕНИЕ: [пул www] ребенок 12 сказал в stdout: "2016-03-21 14:10:02 [xxxx] [-] [-] [info] [yii\web\Session:: open] Сессия началась"...
Почему это и есть способ предотвратить PHP-FPM от этого?
UPDATE:
catch_workers_output = yes
в их конфигурацию. Так что не решение.Это правильно. вы используете php-fpm, а журналы ошибок - php-fpm, а не PHP. вы должны ожидать журнал php-fpm, а не журнал php. к счастью, php-fpm напишет каждый журнал, полученный от PHP в конце своих журналов.