Я новичок в nginx и для его тестирования я перехожу с Apache, и все, что мне осталось, - это настроить пользовательские страницы ошибок.
Эти страницы являются файлами php (для многоязычных целей), Я пробовал многие методы из StackOverflow, но не могу понять, как это сделать.
Некоторые из них:
До сих пор я создал файл /etc/nginx/common/default-error-pages.conf
, чтобы включить его в vhosts. Этот файл содержит:
error_page 400 /error/400.php;
error_page 401 /error/401.php;
error_page 403 /error/403.php;
error_page 404 /error/404.php;
error_page 500 /error/500.php;
error_page 503 /error/503.php;
location /error/ {
alias /var/www/error/;
autoindex on;
}
location ~ \.php$ {
root /var/www/error/;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
# fastcgi_intercept_errors on;
}
Файлы php находятся в /var/www/error
, если я включаю автоиндекс, я могу просматривать их в браузере все файлы, но если я нажимаю на любой из них по умолчаниюОтображается страница 404.
Я создал символическую ссылку одного из этих файлов на сайт тестирования, и он корректно исполняется даже при загрузке CSS, как и ожидалось.
Я пытался вложить местоположенияи включая этот файл конфигурации в верхней части блока server
сайта.
Если я изменю расширение файлов ошибок php на html, они будут правильно обслуживаться.
Сайт nginx аналогиченна это (упрощенный файл):
server {
listen 4430 ssl http2 default_server;
listen [::]:4430 ssl http2 default_server;
server_name test.local;
root /var/www/html;
index index.php index.html;
# execute php files "helper"
include common/php-files.conf;
fastcgi_hide_header X-Powered-By;
include common/default-error-pages.conf;
location / {
# autoindex on;
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
Как предполагается настроить? Я столько раз менял его, что даже не знаю, что еще попробовать.
В файлах журналов Nginx не выявляется никаких неожиданных ошибок / настроек.
Заранее спасибо