Как заставить nginx выполнять php-код в html файлах

В категорії Підказки от 16 Січня, 2018. Автор admin

Необходимо выполнить ряд шагов:

1. nginx должен передавать html-файлы fastcgi-бэкенду. Для этого нужно изменить location, где прописана обработка php-файлов, либо добавить новый location:

Например, файл /home/torm/conf/web/nginx.conf приводим к виду:

listen XX.XX.XX.XX:80;
server_name mysite.ru;
 
index index.php index.html index.htm index.phtml;
 
set $fastcgipass unix:/var/lib/php5-fpm/web1.sock;
 
location / {
        try_files $uri $uri/ /index.php;
}
 
location ~ \.(php|htm|html|phtml)$ {
        try_files       $uri = 404;
        include         /etc/nginx/fastcgi_params;
        fastcgi_pass    $fastcgipass;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Обратите внимание на location ~ \.(php|htm|html|phtml)$

2. php5-fpm по-умолчанию отказывается обрабатывать файлы оканчивающиеся не на .php
Чтобы это исправить нужно в файле /etc/php5/php-fpm.conf (или же в файле конфигурации вашего пула, если у вас есть деление на пулы) добавить строку security.limit_extensions.

Например в файле пула /etc/php5/fpm/pool.d/web1.conf

[web1]
listen = /var/lib/php5-fpm/web1.sock
...
security.limit_extensions = .php .html .htm .phtml
...

 

Теги: , ,

VestaCP и pdd.yandex.ru игнорировать локальные домены сервера

В категорії Підказки от 15 Січня, 2018. Автор admin

Решение #1. «В лоб».

Находим в указанном выше файле блок ROUTERS CONFIGURATION и чуть ниже строчки:

dnslookup:
driver = dnslookup
domains = !+local_domains
transport = remote_smtp
no_more

Правило в строке domains = !+local_domains пропускает все существующие в VestaCP домены (mail домены). Мы можем закомментировать эту строчку для быстрого решения. ВНИМАНИЕ: данное «решение» можно применять ТОЛЬКО в том случае, если вы не собираетесь использовать внутреннюю локальную почту!

Решение #2.

Находим в указанном выше файле блок ROUTERS CONFIGURATION и перед правилом dnslookup добавляем еще одно:

dnslookup2:
driver = dnslookup
transport = remote_smtp
condition = ${if exists{/etc/exim/domains/$domain/remote_always}{true}{false}}
no_more

Теперь мы можем «управлять» поведением. Если требуется, чтобы почта на user@domain «уходила» с сервера на удаленный сервер (в данном случае в яндекс), то надо всего лишь создать пустой файл remote_always в папке /etc/exim/domains/{ВАШ_ДОМЕН}/

Теги: , , ,