Помогите победить File not found. от Nginx

Обсуждение установки и настройки поддерживаемых вебсерверов, а также работы с ними.
Ответить
username78
Сообщения: 10
Зарегистрирован: Ср фев 09, 2022 6:32 am

Помогите победить File not found. от Nginx

Сообщение username78 » Вт сен 19, 2023 7:28 am

Если кто-то поможет с финальными настройками сервера – будет здорово. Можно в личку.

Проблема 1.
При доступе к несуществующей странице с адресом site.com/page.php получаю "File not found." от Nginx. Если запросить такую же несуществующую страницу но уже в подпапке (site.com/d/page.php), то всё пучком и отрабатывается скрипт /404.php, прописанный в .htaccess сайта.

Как починить, чтобы и корневые несуществующие страницы вызывали /404.php?

Аватара пользователя
alenka
Сообщения: 2058
Зарегистрирован: Ср сен 27, 2017 11:10 am

Re: Помогите победить File not found. от Nginx

Сообщение alenka » Пн окт 02, 2023 8:27 am

8002/index.php?do=apacserver&module=error_pages

username78
Сообщения: 10
Зарегистрирован: Ср фев 09, 2022 6:32 am

Re: Помогите победить File not found. от Nginx

Сообщение username78 » Вт окт 03, 2023 10:10 am

похоже, что не то.

то есть, вероятно и оно, но для всей кучи сайтов подгружать файло мне лично неудобно и неочевидно, если вдруг (когда) содержимое 404.php поменяется.

вопрос в том, отчего не отрабатывается 404.php исключительно для несуществующих .php файлов в корне сайта? если это не .php в корне или .php не в корне (в папке), то всё пучком. это ж не нормально и хотелось бы починить.

при этом смутные воспоминания, что изначально всё было, как надо. а вот когда поломалось затрудняюсь сказать, заметил случайно. :?

вроде как проблема связана с php-fpm и лечить предлагают фиксом

Код: Выделить всё

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
но в конфиге раздел location ~ \.php$ {...} отсутствует, а его добавление в конфиг тестового сайта вызывает уже 502 от самого Nginx...

Аватара пользователя
sbury
Сообщения: 1387
Зарегистрирован: Вт фев 06, 2018 7:51 am

Re: Помогите победить File not found. от Nginx

Сообщение sbury » Ср окт 04, 2023 8:02 am

У вас какая Web связка установлена?
И какая ОС?

username78
Сообщения: 10
Зарегистрирован: Ср фев 09, 2022 6:32 am

Re: Помогите победить File not found. от Nginx

Сообщение username78 » Чт окт 05, 2023 7:45 pm

Да вроде дефолт:

Текущая комплектация: apache2.4 nginx php5.6 php8.0

Крутится на CentOS 7

Аватара пользователя
sbury
Сообщения: 1387
Зарегистрирован: Вт фев 06, 2018 7:51 am

Re: Помогите победить File not found. от Nginx

Сообщение sbury » Пт окт 06, 2023 6:40 am

У вас установлена веб связка apache и nginx.
При таклй конфигурации nginx работает как прокси. Вам надо у апачи создаь файл ./htaccess и прписать в нем

Код: Выделить всё

Options +FollowSymLinks +ExecCGI

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ er/404.php?file=$0 [QSA,L]
Это направит все не существующие URL на ваш скрипт er/404.php А он уже будет отдан nginx

username78
Сообщения: 10
Зарегистрирован: Ср фев 09, 2022 6:32 am

Re: Помогите победить File not found. от Nginx

Сообщение username78 » Пн окт 09, 2023 7:16 am

sbury писал(а):
Пт окт 06, 2023 6:40 am
Это направит все не существующие URL на ваш скрипт er/404.php А он уже будет отдан nginx
Да, так работает. спасибо.
Но всё равно до конца не ясно, отчего оно без вставки так избирательно не работает именно только для php и только для php в корне сайта...

username78
Сообщения: 10
Зарегистрирован: Ср фев 09, 2022 6:32 am

Re: Помогите победить File not found. от Nginx

Сообщение username78 » Вт окт 10, 2023 9:11 am

sbury писал(а):
Пт окт 06, 2023 6:40 am
У вас установлена веб связка apache и nginx.
И вся эта история как-то связана с Jail, насколько я понимаю. Если учётка в Jail PHP, то этот рецепт работает. Если учётку вывожу из Jail PHP, то оно во всех случаях выбивает "File not found." от php. То есть и для php в корне, и для подпапок, и для неPHP файлов... :?

Ответить