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

15

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

Благодарю.

SteveEdson
источник
Какой дистрибутив Linux вы используете? Как вы установили php-fpm? Из пакета или из источников?
Тонин
Он работает на экземпляре Amazon EC2 Linux, PHP-FPM был установлен с использованиемyum install -y php-fpm
SteveEdson

Ответы:

27

Так что настройте его для запуска при загрузке:

chkconfig php-fpm on
Майкл Хэмптон
источник
1
Так просто, гениально! Приветствия
SteveEdson
4

Я столкнулся с этой самой проблемой в Ubuntu 16.04, и я оставляю здесь свой ответ для будущих пользователей Google, которые сталкиваются с проблемой. Поскольку chkconfigон в основном специфичен для CentOS, он явно не существует в Ubuntu. Очевидно, чтобы получить специальный PHP ( php-fpmSAPI) для запуска при загрузке под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 - он просто работал. Полностью забыл об этой команде.

CubicleSoft
источник
2
Изначально вопрос касался Amazon Linux, я не могу сказать, сколько пользователей Ubuntu его увидят. Что касается 16.04 и systemd, то нужно использовать подходящий системный модуль, а не выскочку старого стиля или древний сценарий инициализации. Вы должны быть в состоянии найти пригодный для использования системный модуль с пакетом distro или в другом месте.
Майкл Хэмптон
Я пользователь Ubuntu 14.04, и это помогло мне, спасибо! PS: sudoможет понадобиться для этой команды.
Эдсон Орасио Младший