php-fpm zwraca pustą odpowiedź na nginx

9

nginx łączy się z php-fpm przez fastcgi, używając standardu /etc/nginx/fastcgi_paramsw bloku lokalizacji.

Po podłączeniu do /.status (php-fpm.ini :: ping.path) z wiersza poleceń za pomocą cgi-fcgi -bind, wynik wraca zgodnie z oczekiwaniami (zestaw X-Powered-By, treść odpowiedzi itp.).

W przypadku żądania z nginx wynik jest pusty (zestaw X-Powered-By, brak długości ciała lub zawartości). nginx zwraca 200, ponieważ otrzymała „prawidłową” odpowiedź.

Obserwując tcpdump, wyodrębniłem żądania parzystości w ich nagłówkach FCGI (minus zmienne env związane z użytkownikiem nadal ustawione przez powłokę).

David Souther
źródło
Spróbuj zmienić na użytkownika, który uruchamia nginx jako, i ponownie uruchom test cgi-fcgi -bind.
Niektóre Linux Nerd
Zawsze psuję wdrożenia NRPE, testując je jako root ... pomyślałem, że mogłeś zrobić to samo.
Niektóre Linux Nerd

Odpowiedzi:

11

Standardowy factcgi_paramsplik nie zawiera wiersza klucza dla SCRIPT_FILENAME.

location ~ \.php$ {
                include fastcgi_params;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}

Dodaj go i uruchom ponownie nginx.

shukshin.ivan
źródło
4

Twoje pytanie jest trochę niejasne. Tak zwany „biały ekran śmierci” (WSOD) może zostać wywołany przez nieskończoną liczbę rzeczy. Ale niektóre rzeczy robię, jeśli napotykam to:

  • Aktywuj następujące elementy w swoim php.ini:

    display_errors = 1
    display_startup_errors = 1
    error_log = /path/to/file
    error_reporting = -1 ; (the -1 activates absolutely everything)
    log_errors = 1
    
  • Aktywuj w php-fpm.conf:

    error_log = /path/to/file
    
  • Aktywuj dla każdej konfiguracji puli php-fpm:

    catch_workers_output = 1
    
  • Powtórz zapytanie i sprawdź wszystkie dzienniki (w tym dziennik błędów nginx)
  • Zwiększ poziom logowania (np. Debuguj na Nginx)

Jeśli nic z tego nie pomoże w rozwiązaniu problemu, prześlij pełne informacje o systemie i konfiguracje. Bez tego nikt nie jest w stanie udzielić ci precyzyjnej odpowiedzi.

Fleshgrinder
źródło