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?
Благодарю.
2 ответа
Так что настройте его для запуска при загрузке:
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