Назад | Перейти на главную страницу

PHP-FPM не запускается автоматически после перезагрузки

Я использую PHP-FPM и Nginx, иногда по какой-то причине мне приходится перезагружать сервер. Когда сервер снова запускается, служба nginx запускается автоматически, а PHP-FPM - нет. Это видно, когда я запускаю команду sudo /etc/init.d/php-fpm restart сразу после перезагрузки и получаем результат:

$ sudo /etc/init.d/php-fpm restart
Stopping php-fpm:                                          [FAILED]
Starting php-fpm:                                          [  OK  ]

Это ожидаемое поведение? Как лучше всего заставить PHP-FPM запускаться автоматически? Есть ли где-нибудь опция конфигурации, или мне нужно добавить команду в один из сценариев запуска Linux?

Спасибо.

Итак, настройте его на запуск при загрузке:

chkconfig php-fpm on

Я только что столкнулся с этой проблемой в Ubuntu 16.04, и я оставляю здесь свой ответ для будущих пользователей из Google, которые столкнутся с проблемой. поскольку chkconfig в основном специфичен для CentOS, но, очевидно, не существует в Ubuntu. Видимо, чтобы получить кастомный PHP (php-fpm SAPI) для запуска при загрузке из systemd, который является новым для Ubuntu 16.04 (ранее Upstart), его необходимо зарегистрировать в системе, помимо простого удаления init.d сценарий в /etc/init.d/. Чтобы зарегистрировать скрипт, я запустил:

update-rc.d php-fpm defaults

А reboot и последующие ps aux подтвердил, что php-fpm действительно запускался при загрузке. Он также был добавлен в /etc/init.d/.depend.start.

Другие мысли: Ubuntu Upstart был достаточно хорош, так что мне никогда не приходилось запускать update-rc.d после размещения скрипта init.d - просто заработало. Совершенно забыл про эту команду.

Начиная с CentOS 7 вам просто нужно включить службы через systemctl:

systemctl enable php-fpm

Вы можете проверить, работает ли он позже, с помощью:

systemctl status php-fpm