php fpm php error log

Where is php-fpm log file? Or how to activate it? Does PHP7 log errors? #48

Comments

ianldgs commented Jan 23, 2016

No description provided.

The text was updated successfully, but these errors were encountered:

We are unable to convert the task to an issue at this time. Please try again.

The issue was successfully created but we are unable to update the comment at this time.

ianldgs commented Jan 23, 2016 •

I was able to activate it, if anyone needs, just follow these steps:

1: edit:
sudo vim /usr/local/etc/php-fpm.d/www.conf

2: add to the end of the file:

3: create the log file, so php-fpm can write on it:
touch /var/log/fpm-php.www.log && chmod 666 /var/log/fpm-php.www.log

rlerdorf commented Sep 6, 2016

You should only need to turn log_errors on. Then it will go to the default error logging file. For nginx it would be /var/log/nginx/default-error.log

I have now turned on log_errors in the latest image.

jessuppi commented Nov 8, 2019

Coming here from Google and yah, it is rather bizarre because in the comments it says these directives will «overwrite» upstream PHP-FPM settings, which makes it sound like you can ignore them if they’re already defined in php-fpm.conf however that is not the case.

Additional php.ini defines, specific to this pool of workers. These settings overwrite the values previously defined in the php.ini.

Also if you’re in production environment, you should keep display_errors disabled. here is our current [www] pool configuration for SlickStack:

Источник

Как правильно настроить логи php-fpm?

Настроил сервер в связке nginx + php-fpm.

В целях безопасности создал нового пользователя (usersite) для работы по ssh. От его имени создаю папки в домашнем каталоге этот пользователь является владельцем всех файлов.

Первая проблема которая возникла php-fpm работает от имени (www-data) и когда мои скрипты создали уменьшенные картинки, они уже были от имени www-data, из-за этого я их удалить не могу из ssh от пользователя usersite (права стоят 755 на папки и 644 на файлы и менять эти права не хочу). Эту проблему решил выставлением в конфиге в php-fpm
user = usersite
group = usersite
listen.owner = www-data
listen.group = www-data
После этого вроде всё хорошо работает, но возникли проблемы с логами и сессиями.
php_admin_value[error_log] = /var/log/fpm-php.usersite.log
php_admin_value[session.save_path] = /var/lib/php/sessions/usersite

После этого действия я подвис, возникли проблемы с записью сессий и логов, что делать с файлами лога и сессии?
1) создать папку usersite в логах и сессии и сделать его владельцем?
2) судя по папке log в ней все файлы архивируются через какое-то время, как будет происходить это в моём случае? (архивирование я нигде не прописывал и кто это вообще делает)
3) что будет происходить в папке сессий, они там будут автоматом удаляться?
4) Что кроме логов и сессий нужно настроить, когда nginx один пользователь а php-fpm другой?

php fpm php error log. Смотреть фото php fpm php error log. Смотреть картинку php fpm php error log. Картинка про php fpm php error log. Фото php fpm php error log

Оставь пользователя www-data и не меняй его

либо поставь пользователю usersite группу www-data, файлам выдай права 775 (читать писать владельцу и группе)
либо когда надо поработать с файлами, сделай sudo su www-data и ковыряйся с файлами

Доступ даю для другого человека, поэтому не хочется давать больше прав чем положено. На сайте несколько сайтов и только один нужно разграничить. Для меня лучше один раз настроить под человека, чем постоянно что-то прописывать для него.

Можно поинтересоваться, а где настроить, чтобы автоматом php-fpm создавал папки 775, сейчас автоматом создаются 755.

Источник

PHP-FPM. НАСТРОЙКА И ТЮНИНГ

php-fpm – PHP FastCGI менеджер процессов. Используется в связке с nginx + php. По моему мнению лучшая связка для веб-сайтов.

Разобраться в параметрах конфигурации, и решить проблему, которая возникла на продакшен сервере с чрезмерным потреблением оперативной памяти. Произошло это потому, что php-fpm породил множество дочерних процессов, которые с радостью съели память, и, в один прекрасный момент, когда еще запустился парсер, OOM-killer положил мою машину. Причем ночью. На 6 часов. Почему она именно зашатдаунилась, а не ребутнулась – это другой вопрос, но неприятный впечатлений была масса.

Конфигурация и термины

/etc/php-fpm.conf – глобальная конфигурация

/etc/php-fpm.d/* – конфигурация пулов

Pool – это группа процессов, выделенная для обработки запросов, поступающих на определённый порт или Unix-сокет. В PHP-FPM возможно использовать отдельные пулы для каждого сайта и точно распределять ресурсы, а также использовать разных пользователей и разные группы для каждого пула.

Если пулы работают от имени одного и того же пользователя, разделение приложений по пулам позволяет предотвратить ситуацию, когда высоконагруженное приложение постоянно держит занятыми процессы-обработчики, не давая таким образом нормально работать лёгким интерактивным приложениям.

Для каждого из пулов можно задавать разные настройки PHP. Причем эти настройки будут иметь приоритет выше, чем те, что в php.ini либо те, которые могут задаваться напрямую из php-скриптов.

Конфигурация и параметры

Итак, начнем с глобального конфига:

Теперь можно рассмотреть конфигурацию пула (для примера /etc/pfp-fpm.d/blog.conf):

Также, отредактируем php.ini файл, указав:

О подсчетах параметров:

Остается закономерный вопрос: а как же выбрать комфортные параметры для сайта? С дефолтным конфигом сделаем следующее:
1. Предположим, что у нас есть VDS с 512 Mb оперативной памяти, из которой 200 Mb мы можем выделить под PHP-FPM.
2. Возьмем “тяжелые” страницы сайта и откроем их (желательно почти параллельно) в том колличестве, сколько потенциально их может быть открыто параллельно в пиковые нагрузки (при этом количество страниц возьмем с небольшой дельтой в большую сторону)
3. Смотрим через htop количество памяти, которое забрали под себя процессы php-fpm. Добустим это 20 Mb на каждый. Тогда добавив дельту в 10%, будем считать что это 22 Mb.
4. Считаем значение для параметра pm.max_children:
200 / 22 = 9.09

Приемлемым значением pm.max_children будет 9. Это значение основано на среднем значении и возможно далее его необходимо будет изменить, когда вы заметите длительное время использования памяти процессом. После быстрого тестирования несложно выбрать значения pm.start_servers, pm.min_spare_servers и pm.max_spare_servers. Максимальное количество запросов на процесс по умолчанию не ограничено, но хорошо бы установить какое-нибудь небольшое значение, например 200, и избежать проблем с памятью. Такого вида настройка может обрабатывать большое количество запросов, даже если значение параметра невелико.

В итоге, получаем примерно такой блок конфигурации:

Читайте также

Попробуем определить каким образом можно повысить производительность сервера приложений на базе php-fpm, а также сформировать чек-лист для проверки конфигурации fpm…

Стандартные библиотеки PHP умеют генерировать только целые случайные числа. Однако, возникают задачи где нужно не целое рандомное число с максимально…

Казалось бы http_build_query — простая функция, однако, имеет некоторые особенности. Нельзя однозначно сказать что это баг, скорее просто недокументированная фича,…

Источник

php error_log not working

This has been asked 1000 times and I have browsed through the different posts before posting this but have not found an answer. As long as I have been prgramming with PHP, this have always been a nightmare to get working. Can someone please tell me what I am doing wrong here?

I have error_log set in the ini file along with error_reporting = E_ALL | E_STRICT

What else am I missing? This usually gave it to me. I want this set in the ini file and not in my scripts.

Another interesting thing that is happening is that when I purposfully try and throw an error in one of my scripts, Apache restarts over and over again.

This is my event log after one error. Loot at the timestamp

17 Answers 17

Check PHP-FPM is not explicitly setting error_log :

Make sure the file /etc/php-fpm.d/www.conf does not contain php_admin_value settings for error_log. Search for the following and comment them out using a semi-colon:

Then restart php-fpm:

php_admin_value settings in apache configuration files cannot be overridden, so make sure you dont have any php_admin_value for the error_log setting in the Apache configuration files. Also check for php_value settings just in case.

php fpm php error log. Смотреть фото php fpm php error log. Смотреть картинку php fpm php error log. Картинка про php fpm php error log. Фото php fpm php error log

You also need to set log_errors = On in php.ini.

In case anyone else is having trouble getting their local development environment to log errors, here’s what fixed it for me:

On windows, error_log must be set to the complete path to the log for error_log() to work ( error_log = c:\apache\php_errors.log ). However, if error_log = php_errors.log with no path, php will still be able to log startup errors such as

php fpm php error log. Смотреть фото php fpm php error log. Смотреть картинку php fpm php error log. Картинка про php fpm php error log. Фото php fpm php error log

Flimm’s Troubleshooting Guide

Here is my troubleshooting guide to error_log() calls not working.

Look at your server’s configuration to find out where the default error log file is. This depends on which server you’re using. To get you started, have a look at Apache’s ErrorLog option if you’re using Apache or Nginx’s error_log option if you’re using Nginx. Make sure it is set to a file. If you’re using a tool like Valet, note that it’s using server software like Nginx behind the scenes.

Other things to look at: You may be having permission issues in SELinux (see this answer).

Источник

Просмотр и анализ логов сайта на Linux сервере

Содержание:

Логи сайта — это системные журналы, позволяющие получить информацию о посещении сайта ботами и пользователями, а также выявить скрытые проблемы на сервере — ошибки, битые ссылки, медленные запросы от сервера и многое другое.

Важные логи сайта

Расположение логов

Важно обратить внимание, что местоположение логов сайта по умолчанию зависит от используемого типа оболочки и может быть изменено администратором.

Стандартные пути до Error.log

Nginx

Php-Fpm

Apache (CentOS)

Apache (Ubuntu, Debian)

Стандартные пути до Access.log

Nginx

Php-Fpm

Apache (CentOS)

Apache (Ubuntu, Debian)

Чтение записей в логах

Записи в разных логах имеют общие черты, но количество подробностей отличается. Далее будут приведены примеры строк из разных системных журналов.

Примеры записей

Error.log

В приведенном примере:

Access.log

В приведенном примере:

Просмотр логов сервера с помощью команды tail

Первый вариант использования Tail

Аргумент «-f» позволяет команде делать просмотр событий в режиме реального времени, в ожидании новых записей в лог файлах. Для прерывания процесса следует нажать сочетание клавиш «Ctrl+C».

На место переменной «/var/log/syslog» в примере следует подставить актуальный адрес до нужных системных журналов.

Второй вариант использования Tail

В Linux логи веб-сервера не ведутся до бесконечности, поскольку это усложняет их дальнейший анализ. При преодолении лимита записей, система переименует переполненный строками файл журнала и отправит в «архив». Вместо старого файла создастся новый, но с прежним названием.

Если будет использоваться аргумент «-f», команда продолжит отслеживание старого, переименованного журнала. Данный метод делает невозможным просмотр логов в реальном времени, поскольку файл более не актуален.

При использовании аргумента «-F», команда, после окончания записи старого журнала, перейдёт к чтению нового файла с логами. В таком случае просмотр логов в режиме реального времени продолжится.

Аналог команды Tail

Отличие команды tailf от предыдущей заключается в том, что она не обращается к файлу и файловой системе в период, когда запись логов не происходит. Это экономит ресурсы системы и заряд, если используется нестационарное устройство — ноутбук, смартфон или планшет.

Недостаток данного способа — проблема с чтением больших файлов. Если системный журнал достаточно большой, возникает вероятность отказа в работе программы.

Изменение стандартного количества строк для вывода

Как и отмечалось выше, по умолчанию выводится 10 строк. Если требуется увеличить или уменьшить их количество, в команду добавляется аргумент «-n» и необходимое число строк.

При использовании данной команды будут показаны последние 100 строк журнала.

Просмотр логов с помощью ISPManager

Если на сервере установлен ISPManager, логи можно легко читать, используя приведенный ниже алгоритм.

* Вместо «newdomen.ru» из примера в выдаче будет название актуального домена.

Программы для анализа логов

Анализировать журналы с большим количеством данных вручную не только сложно, но и чревато ошибками. Для упрощения работы с лог файлами было создано большое количество сервисов и утилит.

Инструменты для анализа логов делятся на два основных типа — статические и работающие в режиме реального времени.

Статические программы

Данный тип выполняет работу только с извлеченными логами, но обеспечивает быструю сортировку данных.

WebLog Expertphp fpm php error log. Смотреть фото php fpm php error log. Смотреть картинку php fpm php error log. Картинка про php fpm php error log. Фото php fpm php error log

Возможности

Web Log Explorer

php fpm php error log. Смотреть фото php fpm php error log. Смотреть картинку php fpm php error log. Картинка про php fpm php error log. Фото php fpm php error log
Возможности

Программы для анализа в режиме реального времени

Эти инструменты встраиваются в программную среду сервера, анализируют данные в реальном времени и записывают непрерывный отчёт.

GoAccess

php fpm php error log. Смотреть фото php fpm php error log. Смотреть картинку php fpm php error log. Картинка про php fpm php error log. Фото php fpm php error log
Возможности

Logstash

php fpm php error log. Смотреть фото php fpm php error log. Смотреть картинку php fpm php error log. Картинка про php fpm php error log. Фото php fpm php error log
Возможности

Ведения логов медленных запросов сервера

Анализ данного лога позволяет определить на какие типы запросов сервер отвечает долго. В идеале задержка должна составлять не более 1 секунды.

На некоторых типах оболочек (MySQL, PHP-FPM) ведение данного лога по умолчанию отключено. Процесс запуска и ведения зависит от сервера.

MySQL

Если сервер управляется с помощью MySQL, то необходимо создать каталог и сам файл для ведения журнала с помощью команд:

Стоит изменить владельца файла, чтобы избежать дальнейших проблем с записью логов. Делается это командой:

После выполнения предыдущих действий, нужно совершить вход в командную строку MySQL под учётной записью суперпользователя:

Для запуска и настройки ведения логов нужно последовательно ввести в терминале следующие команды:

Проверить статус и параметры ведения лога медленных запросов можно командой:

Выход из консоли MySQL выполняется командой:

После выполнения всех предыдущих действий, можно просмотреть логи сервера. Для этого в терминале вводится:

PHP-FPM

Для ведения журнала на данной оболочке, необходимо отредактировать параметры в конфигурационном файле. Для этого в терминале вводится команда:

Далее нужно найти строки:

После применения изменений, необходимо перезагрузить сервер PHP-FPM. Для этого в консоль вводится команда:

Просмотр логов запускается командой:

Анализ логов медленных запросов

Логи медленных запросов могут за незначительное время вырасти до огромных размеров. Для сортировки и отображения повторяющихся запросов рекомендуется использовать программу MySQLDumpSlow.

Для запуска просмотра логов с помощью этой утилиты, нужно составить команду по приведенному ниже алгоритму:

Ведение логов в Logrotate

На больших ресурсах журналы могут достигать огромных размеров, поэтому нужно своевременно архивировать или очищать логи. С помощью утилиты Logrotate можно управлять ведением журналов: настроить период ротации (архивирование старого журнала и создание нового), период и количество хранения журналов и многое другое.

Изначально программа отсутствует в системе. Ниже приведены команды для инсталляции Logrotate из официальных репозиториев.

Ubuntu, Debian:

CentOS:

После установки необходимо проверить путь для будущих конфигурационных файлов. Для правильной работы они должны находится в папке «logrotate.d». Проверить данный параметр можно открыв конфигурационный файл командой:

В директории «RPM packages drop log rotation information into this directory» должна присутствовать строка:

Теперь создаётся конфигурационный файл «rsyslog.conf». В нём будет находиться конфигурацию по работе с логами. Для создания файла в терминале вводится команда:

В окне терминала откроется текстовой редактор. Теперь нужно внести конфигурацию, как указано в образце. В качестве примера будет использоваться журнал посещений «Access.log» (Nginx).

Теперь остаётся только запустить Logrotate. Для этого вводится команда:

Для проверки правильности работы программы в терминале можно ввести команду:

Начни экономить на хостинге сейчас — 14 дней бесплатно!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *