Блог / Статьи

Полезная информация для вашего хостинга

Как перенести сайт на FastCGI

Перенос сайта на FastCGI (nginx + php-fpm)

Эта статья расскажет вам, как улучшить производительность вашего сайта, переведя его на FastCGI с использованием nginx и php-fpm. Это особенно актуально для тех, кто использует FastCGI в режиме модуля Apache или CGI.

Переход на FastCGI предоставляет значительные преимущества в скорости, но также влечет за собой некоторые изменения, например, отсутствие поддержки файла .htaccess в Apache. Если у вас есть специфические правила в этом файле, их нужно будет сконвертировать с помощью сервиса winginx.com/ru/htaccess и добавить в конфигурационный файл в рамках данного руководства.

Также обратите внимание, что если вы используете LSAPI на стандартном виртуальном хостинге, он также обеспечивает хорошую производительность. Для FastCGI (nginx + php-fpm) потребуются более мощные тарифные планы, подходящие для работы с любыми CMS.

Важно! Для сайтов на CMS, таких как WordPress, Joomla, OpenCart, Bitrix, потребуются дополнительные действия, которые мы рассмотрим далее.

Обратите внимание, что это руководство предназначено для VPS-серверов с панелью управления ISPmanager Lite 5. Для перехода на мощный виртуальный хостинг, пожалуйста, свяжитесь с отделом продаж.

ogp fastcgi php

Процесс перехода на fast-cgi

1. Войдите в панель управления хостингом как root (не как обычный пользователь), перейдите в раздел www-домены и определите владельца сайта и версию PHP, используемую на сайте.

2. Затем перейдите во вкладку пользователи, выберите владельца сайта и дважды кликните по нему.

3. Выберите пункт «Версия PHP (PHP-FPM)» и установите ту же версию PHP, которая использовалась ранее.

4. Возвращайтесь во вкладку www-домены и измените режим работы на FastCGI (nginx + php-fpm), сохраните изменения.

После перехода на FastCGI, возможно, что некоторые страницы сайта будут выдавать ошибку 404.

5. Чтобы исправить это, вернитесь в www-домены, выберите домен и нажмите «Конфиг». В зависимости от вашей CMS, добавьте соответствующий редирект:

 

Конфигурация для WordPress или Joomla в nginx

С использованием хостинга для сайтов на WordPress или Joomla вам нужно добавить следующий блок в конфигурацию nginx:


location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
```

Конфигурация для Битрикс в nginx

Для сайтов на Битрикс конфигурация будет выглядеть иначе:


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;
}
```

Конфигурация для Opencart в nginx

Для Opencart конфигурация выглядит следующим образом:


location / {
if (!-e $request_filename){
rewrite ^/(.+)$ /index.php?_route_=$1 last;
}
}
```

Важные замечания

- Эти конфигурации являются лишь примерами и могут потребовать дополнительной настройки в зависимости от специфики вашего сервера и приложения.
- Убедитесь, что после внесения изменений в конфигурационные файлы nginx, вы проверяете их на наличие ошибок командой `nginx -t` и перезагружаете или перезапускаете nginx, чтобы применить изменения.
- Если у вас есть SSL-сертификат, убедитесь, что вы внесли соответствующие изменения как в HTTP, так и в HTTPS блоках конфигурации.