> Не, не в обиду, но почему не подумать о элементарном, - зачем разрешать выполнение пхп сриптов везде начиная от корня ???Вы читали сообщение на которое я отвечал?
Цитирую
> К сожалению, все еще существуют безумные разработчики, не видящие смысла весь сайт запихивать целиком в /index.php - начитались, понимаешь, каких-то дурацких книжек про необходимость сегментации проектов, особенно на интерпретируемых языках, а выбить из их голов эти бредни эффективного менеджера не нашлось.
> И у них этих файлов бывает два, а то и даже четыре!
Я вот сам не знаю зачем они так пишут, но для того, чтобы их конфигурация работала я и привёл пример. Сам, естественно, я так не пишу и тоже не понимаю зачем так делают другие.
> Вы правда хотите чтоб в директории upload кто нибудь скинул скрипт и потом выполнил ?
Видимо Вы не понимаете что корень сайта и документ рут это разные вещи.
У CMS-ников, конечно же, это одно и тоже, но под корнем сайта я понимаю, это директория сайта на сервере, а документ рут - это / то, что видит web-сервер и на нормальных сайтах это разные вещи.
Разрешения я дал именно для документ рут (там, в моём понимании, кроме index.php и статики ничего и быть не должно) а директория uploads, если вы подразумеваете что там должны быть документы, она должна быть за документ рутом и сервер её никак вообще не должен видеть, а отдаваться они должны через php как поток (всегда на загрузку).
> nginx позволяет вложенные location, ну так и вставляйте свой
> location ~ \.php$ {...} только в тех директориях где есть ВАШИ(!!!) скрипты
Вложенные location, да ещё и с вложенными регулярками это то чего в nginx быть вообще не должно!
> Сысоев как то на конференции говорил...
Не думаю что он говорил использовать вложенные location с регулярками.
Вот Валентина Бартенева лучше почитайте:
https://www.opennet.ru/openforum/vsluhforumID3/118512.html#103
location-ы производительнее потому, что префиксное сопоставление позволяет построить дерево и по нему искать. Но это не касается location с регулярными выражениями. Никаких преимуществ перед аналогичными конструкциями с регулярными выражениями у location нет. Во всех случаях основной тормоз - это исполнение регулярного выражения.
https://www.opennet.ru/openforum/vsluhforumID3/118512.html#105
Обычно вся конфигурация сводится к следующим двум location-ам:
location / {
try_files $uri @php;
}location @php {
fastcgi_pass unix:/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME path/to/app.php;
include fastcgi_params;
}
Всё предельно просто: если файл есть на диске - мы его отдаем, а всё остальное отправляем в приложение. Приложение уже возьмет $_SERVER['REQUEST_URI'] и распарсит как угодно.
Программисты на других ЯП всю дорогу так и делали и только PHP-шники извращаются.