nginx는 /etc/nginx/fastcgi_params
위치 블록 의 표준 을 사용하여 fastcgi를 통해 php-fpm에 연결합니다 .
로 명령 줄에서 /.status(php-fpm.ini::ping.path)에 연결 cgi-fcgi -bind
하면 결과가 예상대로 돌아옵니다 (X-Powered-By set, response body 등).
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
- 요청을 반복하고 모든 로그를 확인하십시오 (nginx 오류 로그 포함).
- 로깅 레벨 증가 (예 : nginx의 디버그)
이 중 아무것도 문제를 해결하는 데 도움이되지 않으면 전체 시스템 정보 및 구성을 게시하십시오. 그것 없이는 아무도 당신에게 정확한 답을 줄 수 없습니다.