Режим 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 {
Под этим блоком (не под данной строкой) вставьте блок с редиректом:
location ~* /\.ht {
deny all;
}
location ~ ^/(?!(\.well-known)) {
if (!-e $request_filename) {
rewrite ^(.*)$ /bitrix/urlrewrite.php last;
}
}
if (!-f $request_filename) {
rewrite ^(.*)/index.php$ $1/ redirect;
}
- Сохраните изменения и проверьте работу сайта.
Была ли статья полезна?
Ваша оценка очень важна