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, все еще устанавливаемых оболочкой).
Стандарт 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.
Что ж, ваш вопрос немного расплывчатый. Так называемый «белый экран смерти» (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
Если ничего из этого не помогает вам определить проблему, опубликуйте полную информацию о системе и конфигурации. Без этого никто не сможет дать вам точного ответа.