SystemdDoctor
служба не работает php-fpm конфигурация

php-fpm: ошибка в описании пула и отказ запуска

php-fpm разбирает все файлы пулов при запуске. Ошибка в любом из них останавливает службу целиком: неизвестный параметр, несуществующий пользователь или каталог сокета, которого нет.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Неизвестный или неверно записанный параметр

    Имена параметров пула строгие, а часть из них требует префикса php_admin_value. Опечатка ломает разбор.

  2. Пользователь или группа пула не существуют

    Параметры пула задают, от кого работают рабочие процессы. Несуществующее имя останавливает запуск.

  3. Каталог для сокета не существует

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

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Проверка всех файлов пулов: печатает файл и строку с ошибкой.

sudo php-fpm8.3 -t

Сообщение службы при отказе запуска.

journalctl -u php8.3-fpm -n 30 --no-pager

Какие пулы вообще есть: лишний файл тоже участвует в разборе.

ls -l /etc/php/8.3/fpm/pool.d/

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Неизвестный или неверно записанный параметр
Почему происходит
Имена параметров пула строгие, а часть из них требует префикса php_admin_value. Опечатка ломает разбор.
Как проверить
Запустите проверку настроек.
sudo php-fpm8.3 -t
Как исправить
Исправьте по сообщению проверки: она называет файл и строку.
2. Пользователь или группа пула не существуют
Почему происходит
Параметры пула задают, от кого работают рабочие процессы. Несуществующее имя останавливает запуск.
Как проверить
Посмотрите настройки и проверьте имена.
grep -E "^(user|group|listen.owner|listen.group)" /etc/php/8.3/fpm/pool.d/www.conf
getent passwd www-data; getent group www-data
Как исправить
Приведите имена к существующим или создайте нужного пользователя.
3. Каталог для сокета не существует
Почему происходит
Путь сокета указывает на каталог, который создаётся через RuntimeDirectory=. Если путь другой, каталога может не быть.
Как проверить
Посмотрите путь сокета и каталог.
grep "^listen" /etc/php/8.3/fpm/pool.d/www.conf
ls -ld /run/php 2>/dev/null
Как исправить
Используйте путь внутри каталога службы (/run/php) либо добавьте нужный каталог через переопределение unit-файла.

Пример вывода

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

× php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager
     Active: failed (Result: exit-code) since Mon 2026-09-15 14:02:10 MSK; 1s ago

php-fpm8.3[4200]: [ERROR] [pool www] cannot get uid for user 'www-dataa'
php-fpm8.3[4200]: [ERROR] failed to post process the configuration
systemd[1]: php8.3-fpm.service: Main process exited, code=exited, status=78/CONFIG

Связанные ошибки

  • Коды 64–78 в systemd: набор sysexits Коды 64-78 из sysexits.h: USAGE, DATAERR, NOINPUT, UNAVAILABLE, SOFTWARE, OSERR, CONFIG и другие. Что означает каждый и где смотреть причину.
  • status=217/USER в systemd Код 217/USER означает, что systemd не смог определить или сменить пользователя из User=. Разбор причин: пользователя нет, имя недопустимо, конфликт с DynamicUser.
  • status=233/RUNTIME_DIRECTORY в systemd Код 233/RUNTIME_DIRECTORY: не удалось подготовить каталог службы в /run из RuntimeDirectory=. Права, режим, удаление при остановке.
  • Apache: Invalid command — не включён модуль Apache не запускается: директива требует модуль, который не подключён. Как найти нужный модуль и включить.
  • Apache: правила .htaccess не действуют Файл .htaccess игнорируется: запрещён параметром AllowOverride, нет нужного модуля, файл не читается.
  • Configuration file is marked executable Предупреждение о правах: unit-файл помечен исполняемым. Откуда берётся и почему это стоит исправить.
  • Configuration file is marked world-inaccessible Предупреждение о правах на unit-файл: служба работает, но файл недоступен для чтения другим.
  • Docker: unable to configure the Docker daemon with file daemon.json Демон Docker не запускается из-за ошибки в /etc/docker/daemon.json: неверный JSON или неизвестный ключ.

Где встречается чаще всего

Источники

  • Документация PHP: параметры пулов документация программы
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено несуществующим пользователем в описании пула.
    собственная проверка, systemd 255
    сверено 15 сентября 2026