Jak mogę dowiedzieć się, dlaczego nie udało mi się uruchomić php5-fpm?

10

dostaję limit czasu bramy 504, gdy próbuję dotrzeć do mojego serwera, mała kontrola nie znalazła żadnych dzienników w logach php5-fpm, ale dla pewności próbowałem go zrestartować. kiedy próbuję go zrestartować:

sudo service php5-fpm restart

rozumiem, [fail] ale kiedy to robię

sudo service php5-fpm stop
sudo service php5-fpm start

Nie dostaję błędu.

jak mogę to sprawdzić, jeśli nie ma dzienników? co mogę zrobić?

Liad Livnat
źródło

Odpowiedzi:

17

Czy sprawdziłeś plik error_log pod kątem php-fpm ? Lokalizacja tego pliku powinna być zadeklarowana w php-fpm.conf (w konfiguracji Ubuntu to /etc/php5/fpm/php-fpm.conf, plik dziennika to / var / log / php5-fpm / log), sprawdź także log_level , jeśli jest wyłączony (; log_level), włącz go i zmień na debugowanie . Następnie spróbuj ponownie uruchomić usługę php5-fpm i sprawdź swoje dzienniki.

Możesz także spróbować uruchomić php5-fpm w trybie pierwszego planu:

# php5-fpm -y /etc/php5/fpm/php-fpm.conf

Może pokaże ci coś interesującego.

zakleszczony
źródło
1
W moim przypadku polecenie to uruchomiło php5-fpm, podczas gdy service php5-fpm startnie. Dzięki!
David Thomas
Davis, wydaje mi się, że działa dla mnie +1! Ale .. Jamzed dał mi rozwiązanie, znalazłem błąd +1! Dziękuję wam wszystkim!
Tenaciousd93
Jeśli uruchomisz FPM przy użyciu zadania upstart, wtedy logi startowe php-fpm zostaną zapisane w / var / log / upstart /
Data
W przypadku php7.0php-fpm7.0 -F -c /etc/php/7.0/fpm/php-fpm.conf
Yadvendar
4

Standardowa procedura rozwiązywania problemów:

  • Sprawdź plik dziennika. Jeśli nie wiesz, gdzie to jest, sprawdź konfigurację lub dowiedz się, na pewno znajdź pid za pomocą ps aux | grep php-fpm, a następnie zrób lsof -p $PID | grep log(pomiń grep, jeśli nic nie pokazuje).
  • 99% plików dziennika czasu pokaże przyczynę. Jeśli nie, poszukaj poziomu rejestrowania w konfiguracji, podnieś go i spróbuj ponownie.
  • Być może natychmiast kończy działanie i nie można uzyskać PID w celu sprawdzenia procesu. Możesz także spróbować rozpocząć proces na pierwszym planie, ale oznacza to ustalenie, których przełączników wiersza polecenia należy użyć. Zwykle wystarczy wskazać na istniejącą konfigurację.
  • Jeśli ani plik dziennika, ani stdout / stderr (wyjście pierwszego planu) nie zawierają żadnych wskazówek, nadszedł czas na strace ... ale to już inny post.
Alex Forbes
źródło
+1 dobry sposób na znalezienie pliku dziennika!
deweydb
3

Ta notatka pomogła mi: https://bugs.launchpad.net/nginx/+bug/1366651

W moim przypadku aktualizacja do nginx> 1.6.1 parametry przekazywane do php5-fpm znajdują się w fastcgi.conf zamiast w fastcgi_params, co powoduje, że PHP zawsze zwraca 200 (ok), ale nigdy żadnej zawartości, ponieważ SCRIPT_FILENAME nie był już ustawiony.

Mam nadzieję, że pomoże to także komuś innemu.

Sebastiaan van Doorn
źródło
2

Dla mnie problem polegał na tym, że mój php-fpm.confplik nie używa domyślnej nazwy pliku config - został nazwany /etc/php5/fpm/php5-fpm.conf( php5-fpm.confvs php-fpm.conf)

php5-fpm -t  

[26-Jul-2014 22:39:16] ERROR: failed to open configuration file '/etc/php5/fpm/php-fpm.conf': No such file or directory (2)
[26-Jul-2014 22:39:16] ERROR: failed to load configuration file '/etc/php5/fpm/php-fpm.conf'
[26-Jul-2014 22:39:16] ERROR: FPM initialization failed

Zmieniłem nazwę pliku conf na php-fpm.confi to rozwiązało problem.

sudo mv /etc/php5/fpm/php5-fpm.conf /etc/php5/fpm/php-fpm.conf
sudo service php5-fpm restart
 * Restarting PHP5 FastCGI Process Manager php5-fpm                                                                           [ OK ]
David Thomas
źródło
0

Wystąpił problem z brakiem plików dziennika, a potem zauważyłem, że uzyskiwałem dostęp do adresu URL przez HTTPS zamiast HTTP i że protokół nie został skonfigurowany w Nginx, więc PHP5-FPM nie otrzymywał ruchu.

Może komuś pomóc.

Dave Hilditch
źródło
0

Może się zdarzyć, że na dist-upgrade Ubuntu pakiet php5-fpm zostanie odinstalowany, ponieważ php 7 używa php-fpm. spróbuj uruchomić to na konsoli:

php5-fpm

Jeśli nie istnieje, prawdopodobnie używasz już php 7, więc zainstaluj

apt-get install php-fpm

który zainstaluje wersję php7

rubo77
źródło