PHP-FPM Linux (PHP-FPM)

PHP-FPM: После перезапуска php-fpm перестаёт слушать нужный сокет

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

После перезапуска нужного PHP-FPM пользователь видит 502, потому что веб-сервер обращается к сокету, который больше не слушается. Убедитесь, что речь именно об исчезновении слушателя после restart, а не о Permission denied при создании сокета или о переполнении процессов; причины разного типа требуют разных действий.

В этой статье
  1. Симптом и границы применимости
  2. Возможные причины и как их отличить
  3. Пошаговая диагностика и исправление
  4. Как проверить результат
  5. Если проблема не устранена

#Симптом и границы применимости

После перезапуска нужного PHP-FPM пользователь видит 502, потому что веб-сервер обращается к сокету, который больше не слушается. Убедитесь, что речь именно об исчезновении слушателя после restart, а не о Permission denied при создании сокета или о переполнении процессов; причины разного типа требуют разных действий.

#Возможные причины и как их отличить

Возможная причинаКак узнатьЧто делать
Запустился другой конфигурационный файлЗапуск из панели и systemd могут читать разные настройки.Сокет появился по другому путиПроверить unit ExecStart и файл пула
Пул отключён или не включён в новую сборкуСлужба может работать только с другими сайтами.systemctl active, но нужной секции пула нетСверить pool.d и включаемые файлы
Конфликт сокета или ошибка запуска выбранного пулаОдин сокет не может одновременно принадлежать двум независимым слушателям.В журнале уже занят адрес, ошибка parse или bindНайти точную строку журнала до перезапуска

#Пошаговая диагностика и исправление

  1. Зафиксируйте старый и новый путьОткройте через SSH nginx -T или Apache VirtualHost, выпишите путь fastcgi_pass/SetHandler. После restart выполните ss -xlpn — существует ли слушатель по этому адресу. Не создавайте файл сокета вручную и не удаляйте обнаруженный файл чужого пула.
  2. Чтение Unix-сокетов; путь и имя процесса видны в выводе
    Linux · Терминал (Bash)КомандаНужен sudo
    Чтение Unix-сокетов; путь и имя процесса видны в выводе.
    sudo ss -xlpn | grep -i fpm
  1. Уточните реальное имя службы и конфигурациюВ systemctl list-units найдите службу FPM версии сайта, а затем через systemctl cat просмотрите unit и ExecStart. Если панель использует собственную службу, стандартный php8.2-fpm может не иметь отношения к сайту.
    Linux · Терминал (Bash)Команда
    Вторая команда примерная, замените правильной службой.
    systemctl list-units --type=service --all | grep -i fpm; systemctl cat php8.2-fpm
  1. Проверьте все секции выбранного пулаУбедитесь, что конфигурация нового FPM включает файл именно этого домена и не переименован файл .conf. Сравните listen и текущие сокеты, проверьте дубли listen в нескольких пулах. В управляемых панелях изменения производите через интерфейс панели, иначе генератор может их перезаписать.
  1. Проверьте журнал после restartНайдите точное время перезапуска в journalctl; сообщения failed to listen, address already in use, unknown entry указывают на неисправность загрузки пула. Помните, что статус active у главного процесса не означает работу всех ожидаемых пулов.
    Linux · Терминал (Bash)КомандаНужен sudo
    Команда для systemd, замените имя установленной службы.
    sudo journalctl -u php8.2-fpm --since "20 minutes ago" --no-pager
  1. Исправьте настройки и повторно проверьтеСохраните копию пула, устраните подтверждённую ошибку пути/подключения и проверьте его конфигурацию бинарным файлом FPM нужной версии. Затем безопасно перезапустите один затронутый экземпляр, не все PHP-службы сразу. Перепроверьте сокет и HTTP-ответ.
  2. После успешной проверки restart выполняется отдельно в установленном окружении
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    После успешной проверки restart выполняется отдельно в установленном окружении.
    sudo php-fpm8.2 -t; sudo ss -xlpn | grep -i fpm

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

  1. Проверьте устойчивость при повторном запускеЕсли возможно, в согласованное время повторите запуск службы и убедитесь, что файл слушателя снова появляется. При повторении сбоя изучите каталог /run и создание runtime-путей, а не повышайте chmod без понимания причин.

#Как проверить результат

После restart сокет создаётся по строго ожидаемому пути и обслуживается правильным процессом, тестовая PHP-страница отвечает стабильно, отсутствует ошибка 502 от прокси.

#Если проблема не устранена

Если сокет появляется, но доступ запрещён, изучите listen.owner/group/mode и ACL; если сокет не создаётся — читайте конкретную ошибку запуска FPM.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.