php-fpm, повертаючи порожню відповідь на nginx


9

nginx підключається до php-fpm через fastcgi, використовуючи стандарт /etc/nginx/fastcgi_paramsу блоці розташування.

Під час підключення до /.status (php-fpm.ini :: ping.path) з командного рядка з cgi-fcgi -bind, результат повертається як очікувався (X-Powered-By, орган відповіді тощо).

При запиті за допомогою nginx результат повертається порожнім (набір X-Powered-By, немає довжини тіла чи вмісту). nginx повертає 200, оскільки отримав "дійсну" відповідь.

Переглядаючи tcpdump, я виділив запити на паритет у їх заголовках FCGI (за вирахуванням змінних env-змінних, які все ще встановлюються оболонкою.)


Спробуйте змінити користувачу nginx запускається як і повторіть тест cgi-fcgi -bind.
Деякий Linux Nerd

Я завжди накручую розгортання NRPE, випробовуючи їх як корінь ... подумав, що ви могли зробити те саме.
Деякий Linux Nerd

Відповіді:


11

Стандартний factcgi_paramsфайл не містить ключового рядка для 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;
}

Додайте його та перезапустіть nginx.


4

Що ж, ваше запитання трохи неясне. Так званий "білий екран смерті" (WSOD) може бути спровокований нескінченною кількістю речей. Але я щось роблю, якщо стикаюся з цим:

  • Активуйте у своєму 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
    
  • Активуйте у своєму php-fpm.conf:

    error_log = /path/to/file
    
  • Активуйте для кожної конфігурації пулу php-fpm:

    catch_workers_output = 1
    
  • Повторіть свій запит і перевірте всі журнали (включаючи журнал помилок nginx)
  • Підвищення рівня реєстрації (наприклад, налагодження в nginx)

Якщо нічого з цього не допоможе вам усунути проблему, будь ласка, опублікуйте повну інформацію та конфігурації системи. Без цього ніхто не може дати точну відповідь.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.