nginx+php, тяжелый конфиг nginx с проксированием, пачкой редиректов и субдоменов,
долго дебажил одну глупую проблему: запрос обрабатывается, а ответа нет.
делаю запрос на test.php - пустой ответ и пустые логи.
включил все логи на максимальные уровни, catch_workers_output = yes, display_errors = on, и нифига, 200й ответ нулевой длины
в access.log GET /test.php HTTP/1.1" 200 31 "-", в errors.log пусто, в php-fpm.www.access.log "- " 200 /opt/www/test.php
то есть fpm запрос получает, файл находит, а результата исполнения нет
долго смотрел на все это как баран на новые ворота пока не заметил, что не подключил fastcgi_params.
Еле догадался по access_log fpm, который никогда не включается, что в php не передается тип запроса, должен быть "GET ", а не "- ". Хрен отдебажишь!
долго дебажил одну глупую проблему: запрос обрабатывается, а ответа нет.
Код:
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
if (!-f $PROJECT_PATH/$RELEASE/php_htdocs$fastcgi_script_name){
return 404;
}
fastcgi_param SCRIPT_FILENAME $PROJECT_PATH/$RELEASE/php_htdocs$fastcgi_script_name;
fastcgi_pass $fcgi;
#PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $PROJECT_PATH/$RELEASE/php_htdocs$fastcgi_script_name;
#Pass the request host name, not the first listed in the server_name.
fastcgi_param SERVER_NAME $host;
}
включил все логи на максимальные уровни, catch_workers_output = yes, display_errors = on, и нифига, 200й ответ нулевой длины
в access.log GET /test.php HTTP/1.1" 200 31 "-", в errors.log пусто, в php-fpm.www.access.log "- " 200 /opt/www/test.php
то есть fpm запрос получает, файл находит, а результата исполнения нет

долго смотрел на все это как баран на новые ворота пока не заметил, что не подключил fastcgi_params.
Еле догадался по access_log fpm, который никогда не включается, что в php не передается тип запроса, должен быть "GET ", а не "- ". Хрен отдебажишь!
Последнее редактирование: