NkDev

Рейтинг
6
Регистрация
09.03.2018
LEOnidUKG:


Каким образом? Что за ПО? Какой там IP прописано слушать?

Nginx

Настройки по умолчанию.

server {

listen 80 default_server;

listen [::]:80 default_server;

...

}

При обращении по статическому ip или домену test.ru открывается приветственная страница nginx (если из внешнего интернета).

Если из той же сети - то не грузит ничего.

Добавил такой блок:

    location ~ ^/src/.+\.php$ {
deny all;
}

Последняя проблема которая осталась, это то что теперь при обращении по любому адресу, который оканчивается на .php появляется страница nginx об ошибке 404 "404 Not Found nginx" а мне бы хотелось чтобы отдавалась моя красивая страница.

Прописать try_files $uri = /src/404.php я не могу, т.к. будет появляться 403 Forbidden.

Замкнутый круг какой то получается.

Как вариант думаю положить рядом с index.php файл 404.php но мне кажется все должно быть намного проще. Сейчас конфиг выглядит так:

server {
listen 80;
server_name site.ru;
root /var/www/site;
index index.php;
error_page 404 /404.php;

location / {
try_files $uri /web/index.php;
}

location ~ ^/src/.+\.php$ {
deny all;
}

location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass fpm:9000;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
}
bums:
500 это ошибка сервера, может лучше найти и пофиксить ошибку чем мудрить с 404.
В error логе что пишется?

Вот что в логах:

2018/05/11 08:17:20 [error] 5#5: *32 rewrite or internal redirection cycle while internally redirecting to "/404.php", client: 172.18.0.1, server: site.ru, request: "GET /src/config.php HTTP/2.0", host: "site.ru"

2018/05/11 08:18:49 [error] 5#5: *32 rewrite or internal redirection cycle while internally redirecting to "/404.php", client: 172.18.0.1, server: site.ru, request: "GET /sdvasdfasfdasdf.php HTTP/2.0", host: "site.ru"

bums:

И если содержимое каталога src не участвует в работе сайта и не должно быть доступно по http, то лучше вынести этот каталог за пределы DOCUMENT_ROOT, уровнем выше.

В файле web/index.php всего одна строка:


<?php
require_once __DIR__ . "/../src/route.php";

этот файл только принимает запрос от пользователя.

Все файлы проекта распологаются в src.

Небольшое дополнение!

Насколько я понял роблема была в этой строчке:

try_files $uri = /404.php;

Файла такого по адресу /var/www/site/www нет, поэтому происходит зацикливание.

Частично заработало после добавления следующей строки:


location ~ \.php$ {
root /var/www/site/src;
...
}

Однако появилась другая проблема:

При обращении к НЕсуществующему файлу, например httр://site.ru/sdvasdfasfdasdf.php, появляется моя страница 404 - как и положено.

Но при обращении к существующему файлу, например httр://site.ru/config.php запускается скрипт!

Как мне запретить прямой запуск php скриптов из браузера, расположенных в папке src ?

melkozaur, Оптимизайка

Спасибо! То что нужно!

KM.UA:
Нехватка RAM на сервере. Панель какая установлена?

1 ядро процессора

1 Гб оперативной памяти

20 Гб жёсткого диска

Никакой панели у меня не установлено. Только 2 сайта: один самописный с нулевой посещаемостью, другой на вордпрессе - 200 чел/сут. А почему он пишет 128 мегабайт? Я могу увеличить этот лимит, скажем до 512 ?? Проблема решится?