littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.

Почему не работает error_page в nginx?

Есть такая конфигурация:
server {
        server_name "mysite.ru";
        root "/var/www/mysite/";

        ###
        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
       }



        #Errors
        error_page 400 /errors/index.php?400;
        error_page 403 /errors/index.php?403;
        error_page 404 /errors/index.php?404;
        error_page 500 /errors/index.php?500;

        location = /errors/ {
                root "/var/www/common";
                internal;
        }

}


В итоге всё равно отображает дефолтную страницу ошибки.

В чем может быть проблема?
  • Вопрос задан
  • 6220 просмотров
Решения вопроса 1
littleguga
@littleguga Автор вопроса
Не стыдно не знать, а стыдно не интересоваться.
Ответ оказался прост: надо внимательнее читать доки.(не указал директивы для fastcgi)
Примерно так:
location = /errors/index.php {
    root "/var/www/common";
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    internal;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@xtreme
Снимаю порчу по SSH :)
Рискну предположить, что дело в отсутствии fastcgi_intercept_errors on; в секции с php.
nginx.org/ru/docs/http/ngx_http_fastcgi_module.htm...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы