PHP-FPM Linux (PHP-FPM)

PHP-FPM: После смены версии PHP не работает нужный пул FPM

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

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

После изменения версии PHP в панели сайт может обращаться к прежнему сокету, а новая служба FPM — запускать другой набор пулов. Для каждой версии PHP свой исполняемый файл, набор расширений и php.ini; нельзя считать, что один пул автоматически «перешёл» на новую версию.

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

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

После изменения версии PHP в панели сайт может обращаться к прежнему сокету, а новая служба FPM — запускать другой набор пулов. Для каждой версии PHP свой исполняемый файл, набор расширений и php.ini; нельзя считать, что один пул автоматически «перешёл» на новую версию.

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

Возможная причинаКак узнатьЧто делать
Новый пул не запускаетсяНастройки старого пула могут не подходить новой сборке.В журнале FPM есть ошибка parse или неизвестная директиваПроверить конфигурацию конкретной версии
Веб-сервер ссылается на старый сокетСмена версии не всегда обновляет конфигурацию прокси.Nginx/Apache возвращает 502 только на этом сайтеСверить fastcgi_pass/SetHandler и listen нового пула
В нужном PHP нет модуля или правphp.ini и модули устанавливаются отдельно для разных версий.Пул работает, но приложение возвращает ошибкуПроверить расширения и права под новой версией

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

  1. Зафиксируйте прежнее рабочее состояниеВ панели запишите исходную версию PHP сайта, имя пула, сокет, набор дополнительных расширений и путь к настройкам. Сохраните копию конфигурации и убедитесь, что резервная копия сайта/базы актуальна. Для чужого сайта без доступа к панели менять общий PHP недопустимо.
  1. Найдите реально работающую службу новой версииПо SSH посмотрите systemctl list-units с FPM и проверьте статус нужного экземпляра. Не предполагаете, что установленная команда php -v означает версию FPM на сайте; php -v обычно относится к CLI.
    Linux · Терминал (Bash)Команда
    systemctl list-units --type=service --all | grep -Ei "php.*fpm|fpm.*php"
  1. Проверьте конфигурацию нового пула отдельноОткройте файл пула через панель или SSH; проверьте секции [имя], listen, user/group, pm и пути журналов. Запустите тест бинарного файла новой версии с его конфигурацией. Если ошибка сообщает о директиве, исправьте только её либо верните прежний пул; не копируйте весь старый php.ini поверх нового.
  2. Пример команды; замените на бинарный файл установленной версии
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Пример команды; замените на бинарный файл установленной версии.
    sudo php-fpm8.2 -t

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

  1. Сопоставьте сокет с внешним веб-серверомВ Nginx найдите fastcgi_pass, в Apache — SetHandler/ProxyPassMatch. Сравните точный путь с listen пула и наличием сокета через ss -xlpn. Если хостинг управляет связкой автоматически, смените версию сайта в его интерфейсе и пересоздайте конфигурацию штатным способом, а не вручную.
  2. Только чтение; путь Unix-сокета не универсален
    Linux · Терминал (Bash)КомандаНужен sudo
    Только чтение; путь Unix-сокета не универсален.
    sudo ss -xlpn | grep -i fpm
  1. Проверьте совместимость приложенияВ защищённой тестовой копии выполните основные сценарии сайта: главная, вход, отправка формы, доступ к БД. Проверьте журналы ошибок PHP после запуска на новой версии, наличие PDO/mysqli/mbstring и других реально нужных расширений. Не размещайте публичный phpinfo().
  1. Завершите смену или откатите еёЕсли синтаксис и тесты успешны, выполните управляемое переключение пула в панели и проверьте запрос снаружи. При 502, пустой странице либо ошибке модуля сразу верните исходную версию и конфигурацию; не оставляйте сайт на сломанном пуле.

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

Панель показывает нужную версию, активный пул действительно обслуживает домен, веб-сервер подключается к новому listen; тестовые страницы и функции работают, ошибки FPM не накапливаются.

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

Если пул не стартует после переключения, проверьте его конфиг-тест и journalctl точной службы. Различайте ошибки запуска пула и ошибки выполнения PHP-приложения.

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

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

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