Я использую 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