Що не так з цією конфігурацією nginx (сторінка помилки)?


1

У мене конфігурація:

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;
        }

}

Але на ньому все ще відображається сторінка помилок nginx 404 за замовчуванням.


Що говорить ваш журнал nginx?
ЄЕАА

@EEAA нічого. error.log та access.log - порожні
littleguga

@EEAA я знову подивився у access.log:myip - - [19/Dec/2015:19:16:42 +0300] "GET /testest2fsdf HTTP/1.1" 404 208 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36"
littleguga

Відповіді:


1

Мені здається, ви намагаєтеся виконати скрипт php з іншого кореня. Ваше точне місце відповідності буде відповідати лише URI, /errors/а не /errors/index.php. Однак, навіть якщо він відповідав URI, він не може виконувати PHP-скрипти в цьому місці.

Вам потрібно повторити свої fastcgiдирективи в будь-якому місці, де очікується виконання сценарію PHP. Наприклад:

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;
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.