Продолжаем серию статей по оптимизации сайтов. В этот раз речь пойдет об изменении работы PHP на FastCGI (nginx + php-fpm).
Данная статья посвящена оптимизации сайтов, а именно изменению работы PHP на FastCGI (nginx + php-fpm). Это необходимо, если Вы используете режим FastCGI (как модуль apache), CGI.
Помимо преимуществ в виде скорости работы, у данного метода работы PHP также есть и недостаток. Т.к. мы убираем из связки Apache, то перестанет работать файл .htaccess. Если у Вас есть
правила в данном файле, то необходимо будет сконвертировать их с помощью сервиса winginx.com/ru/htaccess и добавить в конфиг файл в пункте 4 данного мануала.
Если Вы используете режим LSAPI на нашем обычном виртуальном хостинге, то он также является достаточно производительным. Для использования FastCGI (nginx + php-fpm) необходимо заказать линейку мощных тарифов, подходящих для работы на любых CMS.
Внимание! Для перевода сайта на CMS WordPress, Joomla, OpenCart, Bitrix необходимы дополнительные действия, и сейчас мы их разберем.
Внимание! Данный мануал подходит для VPS серверов с панелью управления ispmanager Lite 5. Для изменения на тарифах мощного виртуального хостинга свяжитесь, пожалуйста, с отделом продаж.
Итак, приступим:
- Зайдите в панель управления хостингом под root пользователем (не обычным пользователем) в раздел www-домены. Далее Вам необходимо посмотреть, какому пользователю принадлежит сайт, который Вы хотите перевести на FastCGI, и на какой версии php он работает.
2) После этого, нам надо зайти во вкладку пользователи, выбрать пользователя, которому принадлежит сайт, и нажать на него 2 раза .
3) Выбираем пункт «Версия PHP (PHP-FPM)». В нем необходимо выставить такую же версию php, какая сейчас стоит у Вас на сайте. После выставления, нажимаем «Ok«.
4) После этого возвращаемся во вкладку www-домены и меняем прежний режим работы на FastCGI (nginx + php-fpm) Сохраняем изменения.
Теперь мы можем попробовать зайти на сайт и проверить, все ли ссылки на сайте работают корректно, но, как правило, работает только главная страница, а все остальные отдают 404 ошибку.
Если у Вас похожая ситуация, то необходимо прописать дополнительный редирект.
5) Для этого в той же вкладке www-домены выбираем домен и нажимаем на кнопку «Конфиг».
Далее, в зависимости от Вашей CMS, выбираем один из вариантов:
a) Если у Вас WordPress, Joomla
Находим строку:
location / {
Под ней необходимо добавить наш редирект:
try_files $uri $uri/ /index.php?q=$uri&$args;
В конечном итоге, у нас получится такой блок:
б) Если у Вас Битрикс
Редирект необходимо будет прописать после блока 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, то редирект необходимо вставить в блок location / :
if (!-e $request_filename){
rewrite ^/(.+)$ /index.php?_route_=$1 last;
}
ВАЖНО!!! Если у Вас на сайте используется SSL сертификат, то таких блоков у Вас будет два в разделе «конфиг». Необходимо прописать отдельно для http блока, и отдельно для https блока.
После того, как Вы прописали редирект, сохраняем конфиг и проверяем работу сайта.
Если по каким-то причинам Вам не удалось перейти на FastCGI (nginx + php-fpm), свяжитесь с нашей техподдержкой, и мы обязательно Вам поможем.