php-fpm возвращает пустой ответ на nginx

9

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

При подключении к /.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, проверяя их как root ... подумал, что вы могли сделать то же самое.
Немного 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.

shukshin.ivan
источник
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)

Если ничего из этого не поможет вам определить проблему, пожалуйста, опубликуйте полную информацию о вашей системе и конфигурации. Никто не может дать вам точный ответ без этого.

Fleshgrinder
источник