Конечно непонятно зачем и кому это нужно, но бывает, что в статических страничках html нужно исполнять код php (например, мне пришлось столкнуться с такой задачей).
По умолчанию в панели Hestia CP + Nginx + Php-fpm эта функция не работает.
Решение.
Нужно править стандартные шаблоны nginx php-fpm. Для этого заходим в папку шаблонов и делаем копии, например, шаблона default:
cd /usr/local/hestia/data/templates/web/nginx/php-fpm
cp default.tpl default-html2php.tpl
cp default.stpl default-html2php.stpl
затем находим блок, где описывается php и добавляем html (или меняем):
location ~ [^/]\.php|html(/|$) {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_index index.html;
Затем в панели Hestia переключаем конфиг Nginx (по кнопке Advanced Options и дальше Web Template NGINX)
Тут скорее всего сайт перестанет открываться вообще, напишет Access Denied и в логах [domain].access.log мы увидим код 403. Но вот в логах [domain].error.log появится ошибка вроде:
([domain] – ваш домен сайта)
FastCGI sent in stderr: “Access to the script ‘index.html’ has been denied (see security.limit_extension
Это уже более информативно. Исправить это можно так:
Правим
nano /etc/php/8.2/fpm/pool.d/[domain].com.conf
добавим строчку:
security.limit_extensions = .php .html
перезапускаем php-fpm
/etc/init.d/php8.2-fpm restart
(вместо 8.2 используйте свою версию php)
! не рекомендую править какие-либо общие конфиги, для безопасности
Post a comment