<div dir="ltr">Спасибо за ваш ответ.<div><br></div><div>Ответ от php-fpm я мог найти в error-log nginx-a. Ну я не скажу, какую именно. Еще раз, проблема заключается в том, что в логе в access.log nginx есть 500-й код ответа. Но причину этого 500-го кода нельзя найти в логе ошибок php (а там прописана опция error_log), и логе unit и в логе nginx, потому что там в принципе не должно быть этих ошибок. В случае с fpm в логе ошибок nginx гарантированно причину можно было найти. Приложение не возвращает просто так 500-ю ошибку.</div><div><br></div><div>Поэтому и возник вопрос, как же можно заставить unit писать лог любых своих ошибок в какой-то файл. Ну или куда вообще можно было бы копать, так как возможные вещи, которые есть возможность предпринять в php, на мой взгляд, предприняты.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">ср, 3 июл. 2019 г. в 12:10, Валентин Бартенев <<a href="mailto:vbart@nginx.com">vbart@nginx.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wednesday 03 July 2019 10:36:52 Anton Kiryushkin wrote:<br>
> Валентин, подскажите, тогда, пожалуйста.<br>
> <br>
> У меня вот есть связка nginx + unit (php).<br>
> И иногда на сайте получается 500-я ошибка. Логи php пишутся и там кроме<br>
> огромного количества строчек вида:<br>
> <br>
> [03-Jul-2019 10:46:01 Europe/Moscow] Failed to connect [111]: Connection<br>
> refused<br>
> <br>
> <br>
> Нет больше ничего полезного. Смотрю в лог unit и там тоже нет хоть<br>
> какого-либо прямого или косвенного сообщения о том, что пошло не так. Кроме<br>
> того, о чем я писал выше.<br>
> В этом смысле nginx + php-fpm давал более прозрачную картину мира. Есть<br>
> ошибка - она есть в логе. Тут вот как-то не всегда.<br>
[..]<br>
<br>
А какую ошибку в этом случае писал php-fpm?  Можно пример?<br>
<br>
Я бы посмотрел по исходникам php, где она возникает и в каких случаях пишется.<br>
<br>
<br>
> Может быть я что-то не знаю или упустил во время настройки? Конфиг unit у<br>
> меня весьма тривиальный:<br>
> <br>
> {<br>
>     "listeners": {<br>
>         "<a href="http://127.0.0.1:8091" rel="noreferrer" target="_blank">127.0.0.1:8091</a>": {<br>
>                 "application": "direct_php"<br>
>         }<br>
>    },<br>
>    "direct_php": {<br>
>                 "type": "php5.6",<br>
>                 "processes": {<br>
>                         "max": 13,<br>
>                         "spare": 0<br>
>                 },<br>
> <br>
>                 "user": "www-data",<br>
>                 "group": "www-data",<br>
>                 "root": "/data/<a href="http://site.ru/web/" rel="noreferrer" target="_blank">site.ru/web/</a>",<br>
>                 "index": "index.php"<br>
>         }<br>
>     },<br>
>     "access_log": "/var/log/nginx/unit_access.log"<br>
> }<br>
> <br>
> Может быть у меня воркеры иногда заканчиваются и эта 500я вовсе не от php,<br>
> а от unit, но почему бы тогда куда-то об этом не сообщать?<br>
[..]<br>
<br>
Unit обычно громко ругается в лог, если что-то пошло не так и он сам был<br>
вынужден сгенерировать 500-ую ошибку.  Но если 500 код ответа был возвращен<br>
из приложения нормальным путем, то тут нечего больше добавить.<br>
<br>
Также как и php-fpm мы отдаем запрос php интерпретатору, тот генерирует<br>
какой-то ответ с определенным кодом и отдает его обратно.  Попутно он<br>
может сам что-то логгировать, но это никак не конролируется со стороны<br>
SAPI, будь то php-fpm, будь то Unit.<br>
<br>
Возможно имеет смысл добавить логгирование о том, что вот мол приложение<br>
вернуло нам 500, чтобы не возникало вопросов, откуда этот ответ родился.<br>
<br>
Стоит учесть, что php-fpm и libphp (которую Unit использует) обычно используют<br>
разные php.ini файлы.  И настройки логгирования и репортинга ошибок там могут<br>
отличаться.  Имеет смысл сделать ревизию используемого с Unit-том php.ini на<br>
предмет соответствующих настроек:<br>
<br>
<a href="https://www.php.net/manual/en/errorfunc.configuration.php" rel="noreferrer" target="_blank">https://www.php.net/manual/en/errorfunc.configuration.php</a><br>
<br>
--<br>
Валентин Бартенев<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div>Best regards,</div>Anton Kiryushkin<br><br></div></div></div>