#Что означает ошибка
unable to bind listening socket
Служба не стартует при занятом порте/сокете или ошибке конфигурации. Проверьте php-fpm -t и журнал.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Порт занят | Сопоставьте запись в журнале службы со временем ошибки и проверьте, не занят ли требуемый порт другим процессом. | Освободите. |
| Ошибка конфигурации | Не стартует. Прочитайте относящуюся к этому компоненту запись в журнале до изменения конфигурации. | Исправьте. |
| Нет каталога сокета | Сопоставьте запись в журнале службы со временем ошибки и проверьте, не занят ли требуемый порт другим процессом. | Создайте. |
| Права | Сравните полномочия текущей учётной записи и доступность нужной функции; на рабочем компьютере политики задаёт администратор. | Определите владельца и права нужного объекта; выдавайте только необходимые разрешения, не отключая защитные механизмы. |
#Пошаговое решение
- Проверьте конфигЕсли PHP-FPM не запускается с сообщением
unable to bind listening socket, откройте системный журнал службы (sudo journalctl -u php8.3-fpm -n 100 --no-pager, предварительно заменив версию на свою). Запишите точный адрес: это может быть Unix-сокет/run/php/...sockили TCP-порт. Не удаляйте сокет до выяснения владельца процесса. - Смотрите journalctlПроверьте активную конфигурацию пулов (
listenв файлахpool.d) и список слушателей черезsudo ss -lxnpдля Unix-сокета либоsudo ss -ltnpдля порта TCP. Если два пула пытаются слушать одно место, задайте каждому свой адрес и настройте соответствующийfastcgi_passв Nginx. - Исправьте listenЕсли процесс отсутствует, но оставшийся файл сокета мешает запуску, сначала убедитесь по
ssиps, что он действительно не используется. Только после резервной проверки и остановки правильной службы можно удалить конкретный устаревший файл сокета. Не выполняйте массовую очистку/run/phpна сервере с несколькими сайтами. - Проверьте альтернативу: праваПроверьте синтаксис командой вашей версии, например
sudo php-fpm8.3 -t, затем запустите только соответствующую службу и изучите её журнал. Убедитесь, что сокет/порт появился и права позволяют Nginx соединиться с ним; откройте сайт и повторно проверьте отсутствие 502.Linux · Терминал (Bash)КомандаНужен sudoПроверка конфигурации.sudo php-fpm8.3 -t
#Проверка результата
Для «PHP-FPM не запускается: ERROR: unable to bind listening socket» выполните штатную проверку конфигурации, затем один контрольный запрос к сервису. Сверьте его результат с журналом и убедитесь, что пользователи не получили новых ответов 4xx или 5xx после изменения.