Page tree

Режим FastCGI (Nginx + PHP-FPM) - самый производительный режим работы PHP. Его использование зачастую может помочь оптимизировать сайт и ускорить его работу.

Однако при переводе сайта на PHP-FPM потребуется выполнить дополнительные настройки:

  • Правила, прописанные в .htaccess, перестанут применяться. Вам будет необходимо указать аналогичные директивы в конфигурационном файле Nginx. Чтобы упростить процесс, можно воспользоваться каким-либо сервисом в сети, который позволяет сконвертировать директивы .htaccess для Nginx.
  • Если вы используете CMS, также будет нужно внести изменения в конфигурационный файл. В статье ниже мы приведем настройки для CMS Wordpress, Joomla, Opencart и Битрикс.

Перевод сайта на PHP-FPM

Перечисленные ниже шаги предполагают, что Nginx уже установлен. Если это не так, предварительно нужно выполнить:

  • В разделе Настройки - Возможности выбрать Веб-сервер и нажать Изменить.
  • Отметить пункт Nginx, чтобы установить его, и пункт PHP-FPM FastCGI
  • Применить изменения и дождаться завершения установки.

1. В первую очередь необходимо проверить, какую версию PHP использует сайт в данный момент и в каком режиме работает PHP. Сделать это можно в разделе Домены - WWW-домены (под пользователем root):

2. В разделе Учетные записи - Пользователи выберите нужного пользователя и нажмите Изменить

3. На вкладке Доступ отметьте пункт Может использовать PHP в режиме FastCGI (Nginx + PHP-FPM).

4. В разделе Домены - WWW-домены:

  • выберите режим работы FastCGI (Nginx + PHP-FPM);
  • укажите ту версию PHP, которая сейчас используется на сайте (см. шаг 1).

5. Проверьте работоспособность страниц сайта. Как правило, большинство страниц, кроме главной, будут отдавать ошибку 404. В этом случае нужно выполнить дополнительные настройки, а именно прописать редирект.

6. В разделе Домены - WWW-домены выделите строку с нужным доменом и нажмите Конфиг.

7. Следующие настройки зависят от используемой вами 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;
}

8. Сохраните изменения и проверьте работу сайта.


  • No labels