PHP-FPM Linux, PHP-FPM (версия уточняется)

PHP-FPM: После обновления пакета служба php-fpm запускается с ошибкой

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

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

После обновления пакетов PHP-FPM может перестать стартовать из-за изменившейся версии бинарного файла, некорректной директивы pool.d, занятого сокета или невозможности загрузить расширение. Сначала нужно обнаружить первичную ошибку, не переустанавливая PHP поверх работающих сайтов.

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

#Что происходит и когда применима инструкция

После обновления пакетов PHP-FPM может перестать стартовать из-за изменившейся версии бинарного файла, некорректной директивы pool.d, занятого сокета или невозможности загрузить расширение. Сначала нужно обнаружить первичную ошибку, не переустанавливая PHP поверх работающих сайтов.

#Причины и диагностические признаки

Возможная причинаКак узнатьЧто делать
Конфигурация несовместима с новой версиейКонфигурация несовместима с новой версией. Тест -t выдаёт неизвестный параметр или строку pool.d.Тест -t выдаёт неизвестный параметр или строку pool.d.Сравнить директиву с руководством установленной версии.
Изменилось имя службы или установлен другой экземплярИзменилось имя службы или установлен другой экземпляр. Сайт указывает на старый Unix-сокет, новая служба активна под другим именем.Сайт указывает на старый Unix-сокет, новая служба активна под другим именем.Сверить имя systemd, сокеты и fastcgi_pass.
Сбой загрузки расширения или доступа к файламСбой загрузки расширения или доступа к файлам. В journalctl появляется ошибка .so или Permission denied.В journalctl появляется ошибка .so или Permission denied.Проверить расширения и конкретные права.

#Подробная пошаговая инструкция

  1. Снимите первичное сообщение об ошибке сразу после обновленияВ SSH проверьте, какой пакет обновлялся и какая FPM-служба перестала работать. Не выполняйте apt autoremove и не удаляйте каталоги конфигурации до резервной копии. Посмотрите состояние служб; успешная работа соседней версии не доказывает работу нужного пула.
  2. SSH на Linux с systemd, пример службы php8.2-fpm
    Linux · Терминал (Bash)КомандаНужен sudo
    SSH на Linux с systemd, пример службы php8.2-fpm. Журнал только читается; запишите первую ошибку, возникшую после обновления.
    systemctl --type=service --all | grep -E "php.*fpm|php-fpm"; sudo journalctl -u php8.2-fpm -n 100 --no-pager
  1. Проверьте конфигурацию именно нового FPMВыполните бинарный файл новой версии с -t. Если он отсутствует, проверьте список установленных пакетов средствами своего дистрибутива. Нельзя считать php -v доказательством наличия php-fpm этой версии.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)КомандаНужен sudo
    SSH, Debian/Ubuntu PHP 8.2 как пример; третья команда проверяет FPM-конфигурацию с правами администратора. При другой версии заменить имя программы.
    php -v; command -v php-fpm8.2; sudo php-fpm8.2 -t
  1. Устраните конкретную ошибку, а не переписывайте всёЕсли тест назвал строку и параметр, сохраните изменяемый pool.d и исправьте только его. Если ошибка связана с расширением, проверьте его совместимость с новой версией и способ установки через штатный пакетный менеджер; не скачивайте произвольные бинарные модули с форумов.
  1. Сверьте порт или сокет, включая права каталога /runЕсли тест проходит, но процесс не стартует, используйте системный журнал и список слушателей. Убедитесь, что старый PHP не занял тот же TCP-порт или путь сокета. Не удаляйте чужой работающий сокет командой rm и не выставляйте FastCGI наружу.
  2. SSH, администратор, только чтение TCP и Unix-сокетов
    Linux · Терминал (Bash)КомандаНужен sudo
    SSH, администратор, только чтение TCP и Unix-сокетов. Если сокет не появился, возвращайтесь к ошибке запуска процесса.
    sudo ss -ltnp; sudo ss -lxnp | grep -E "php|fpm"
  1. Проверьте привязку к сайту и примените восстановлениеПосле успешного -t запустите только нужную FPM-службу в согласованное окно. Проверьте systemctl is-active и один безвредный PHP-запрос. Если 502 сохраняется, сравните fastcgi_pass с новой точкой listen; не меняйте его глобально для всех сайтов.
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    SSH, администратор, пример установленной версии. restart прерывает обслуживаемые запросы, поэтому только после проверки конфигурации.
    sudo systemctl restart php8.2-fpm && systemctl is-active php8.2-fpm

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

  1. Выполните регрессионную проверкуОткройте главную страницу, форму входа и одну внутреннюю страницу с PHP. Посмотрите лог ошибок несколько минут; восстановите исходную версию или копию настройки по проверенному плану отката, если новый PHP вызывает несовместимость приложения.

#Как проверить, что проблема исправлена

Служба active, test -t успешен, FPM слушает нужный адрес, PHP-страницы отвечают без 502/500 и критических предупреждений расширений.

#Если не помогло — дальнейшая диагностика и откат

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

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

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

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