Режим FastCGI (Nginx + PHP-FPM) — самый производительный режим работы PHP. Его использование зачастую может помочь оптимизировать сайт и ускорить его работу.
Однако при переводе сайта на PHP-FPM потребуется выполнить дополнительные настройки:
Правила, прописанные в .htaccess, перестанут применяться. Вам будет необходимо указать аналогичные директивы в конфигурационном файле Nginx. Чтобы упростить процесс, можно воспользоваться каким-либо сервисом в сети, который позволяет сконвертировать директивы .htaccess для Nginx.
Если вы используете CMS, также будет нужно внести изменения в конфигурационный файл. В статье ниже мы приведем настройки для CMS Wordpress, Joomla, Opencart и Битрикс.
Перевод сайта на PHP-FPM
Перечисленные ниже шаги предполагают, что Nginx уже установлен. Если это не так, предварительно нужно выполнить:
В разделе Настройки — Конфигурация ПО выбрать Веб-сервер и нажать Изменить.
Отметить пункт Nginx, чтобы установить его, и пункт PHP-FPM FastCGI.
Применить изменения и дождаться завершения установки.
В первую очередь необходимо проверить, какую версию PHP использует сайт в данный момент и в каком режиме работает PHP. Сделать это можно в разделе Сайты под пользователем root:
В разделе Пользователи выберите нужного пользователя и нажмите Изменить.
На вкладке Доступ отметьте пункт Может использовать PHP в режиме FastCGI (Nginx + PHP-FPM).
В разделе Сайты:
кликните дважды по нужному сайту;
на вкладке Обработчик PHPвыберите режим работы FastCGI (Nginx + PHP-FPM);
укажите ту версию PHP, которая сейчас используется на сайте (см. шаг 1).
Проверьте работоспособность страниц сайта. Как правило, большинство страниц, кроме главной, будут отдавать ошибку 404. В этом случае нужно выполнить дополнительные настройки, а именно прописать редирект.
В разделе Сайты выделите строку с нужным доменом, кликните на три точки для дополнительных опций и выберите Файлы конфигурации.
Внесите изменения в файл, в зависимости от используемой CMS, по инструкциям ниже:
Wordpress, Joomla
В конфигурационном файле найдите блок, который начинается со строки:
location / {
Сразу под этой строкой пропишите редирект:
try_files $uri $uri/ /index.php?q=$uri&$args;
Opencart
В конфигурационном файле найдите блок, который начинается со строки:
location / {
Сразу под этой строкой пропишите редирект:
if (!-e $request_filename){ rewrite ^/(.+)$ /index.php?_route_=$1 last; }
Обратите внимание, что при использовании SSL у вас будет два блока location в файле, и редирект необходимо прописать в них обоих.
Битрикс
В конфигурационном файле найдите следующий блок:
location @php {
Под этим блоком(не под данной строкой) вставьте блок с редиректом: