PHP-FPM nie uruchamia się automatycznie po ponownym uruchomieniu

15

Korzystam z PHP-FPM i Nginx, czasami z jakiegokolwiek powodu muszę zrestartować serwer. Po ponownym uruchomieniu serwera usługa nginx uruchamia się automatycznie, jednak PHP-FPM nie. Można to zobaczyć, gdy uruchamiam polecenie sudo /etc/init.d/php-fpm restartnatychmiast po ponownym uruchomieniu i uzyskuję wynik:

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

Czy to oczekiwane zachowanie? Jaki jest najlepszy sposób na automatyczne uruchomienie PHP-FPM? Czy jest gdzieś opcja konfiguracji, czy muszę dodać polecenie do jednego ze skryptów startowych systemu Linux?

Dzięki.

SteveEdson
źródło
Jakiej dystrybucji linux używasz? Jak zainstalowałeś php-fpm? Z paczki czy ze źródeł?
Tonin,
Działa na instancji Amazon EC2 Linux, PHP-FPM został zainstalowany przy użyciuyum install -y php-fpm
SteveEdson

Odpowiedzi:

27

Skonfiguruj go tak, aby zaczynał się przy rozruchu:

chkconfig php-fpm on
Michael Hampton
źródło
1
To takie proste, genialne! Na zdrowie
SteveEdson,
4

Właśnie natrafiłem na ten problem na Ubuntu 16.04 i zostawiam tutaj swoją odpowiedź dla przyszłych użytkowników Google, którzy natkną się na problem. Ponieważ chkconfigjest głównie specyficzny dla CentOS, oczywiście nie istnieje na Ubuntu. Najwyraźniej, aby uzyskać niestandardowy PHP ( php-fpmSAPI) do uruchamiania przy rozruchu systemd, co jest nowością w Ubuntu 16.04 (wcześniej Upstart), musi być zarejestrowany w systemie poza zwykłym wpuszczeniem init.dskryptu /etc/init.d/. Aby zarejestrować skrypt, uruchomiłem:

update-rc.d php-fpm defaults

A rebooti kolejne ps auxpotwierdziły, że php-fpmrzeczywiście zaczyna się od rozruchu. Zostało również dodane do /etc/init.d/.depend.start.

Inne przemyślenia: Ubuntu Upstart był na tyle miły, że nigdy nie musiałem biegać update-rc.dpo umieszczeniu skryptu init.d - po prostu działało. Całkowicie zapomniałem o tym poleceniu.

CubicleSoft
źródło
2
Pierwotne pytanie dotyczy Amazon Linux. Nie mogę powiedzieć, ilu użytkowników Ubuntu to zobaczy. Jeśli chodzi o 16.04 i systemd, rzeczą do zrobienia jest użycie odpowiedniej jednostki systemowej, a nie starego stylu uruchamiania lub starożytnego skryptu inicjującego. Powinieneś być w stanie znaleźć użyteczną systemową jednostkę z pakietem dystrybucyjnym lub w innym miejscu.
Michael Hampton
Jestem użytkownikiem Ubuntu 14.04 i pomogło mi to, dziękuję! PS: sudomoże być potrzebne do tego polecenia.
Edson Horacio Junior