Как заставить 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/{ВАШ_ДОМЕН}/

Тэги: , , ,

Удаление устаревших бинарных логов MySQL

В категории Подсказки от 8 декабря, 2017. Автор admin

З это отвечает конфигурационный параметр expire_logs_days в серкции [mysqld] конфигурационного файла my.cnf.

expire_logs_days = 14

Теперь после перезапуска MySQL сервер уже будет знать какой древности логи уже стоить удалять (в приведённом примере период древности составляет 14 дней). Чтобы не ожидать когда он перезапустится можно просто подать запрос к серверу посредством phpMyAdmin или консольной программы mysql.

SET GLOBAL expire_logs_days=14;

Или можно произвести ручную зачистку логов до определённого времени используя такой запрос:

PURGE BINARY LOGS BEFORE '2017-01-13 00:00:00';

В запросе указывается дата-время (в формате datetime) до которого логи нужно выпилить.

Тэги: ,