Создаем цифровые решения, которые работают на бизнес
В панели хостинга рядом с версией PHP часто есть ещё одна настройка — режим работы PHP: «модуль Apache» или «FastCGI (Nginx + PHP-FPM)». Оба варианта рабочие, и сайт откроется в любом из них. Но от выбора зависит, будут ли работать правила из файла .htaccess, как сайт ведёт себя под нагрузкой и что придётся настроить при переезде.
Объясняем разницу без лишней теории: как работает каждый режим, что будет с .htaccess, когда включать модуль PageSpeed и что выбрать для WordPress, Joomla, Drupal, PrestaShop, OpenCart и 1С-Битрикс.
Если сайт опирается на .htaccess — а так устроено большинство CMS, — при переезде безопаснее всего модуль Apache: ЧПУ, редиректы и защита папок работают как раньше. Nginx + PHP-FPM тратит меньше ресурсов на каждый запрос и стабильнее держит пики трафика, но .htaccess игнорирует: правила нужно перенести в конфигурацию Nginx.
Практичный подход: переехать в режиме Apache, убедиться, что всё работает, а затем при необходимости перейти на Nginx + PHP-FPM, перенеся правила и проверив редиректы.
PHP работает внутри веб-сервера Apache как его модуль. На большинстве современных хостингов перед Apache стоит Nginx: он сам отдаёт статические файлы — изображения, CSS, JavaScript, — а запросы к PHP передаёт дальше, в Apache. Apache при каждом запросе читает файлы .htaccess в папках сайта, поэтому любые правила можно изменить, просто отредактировав файл.
Nginx обрабатывает все запросы сам, а PHP-код выполняет отдельный пул процессов PHP-FPM через протокол FastCGI. Apache в этой схеме вообще нет, поэтому и .htaccess никто не читает: правила маршрутизации, редиректы и запреты описывают в конфигурации Nginx. Зато каждый запрос обходится дешевле, а под нагрузкой сервер ведёт себя предсказуемее.
| Критерий | Модуль Apache | Nginx + PHP-FPM |
|---|---|---|
| Файлы .htaccess | работают | игнорируются, правила переносят в конфигурацию Nginx |
| Отдача статики | быстро, если перед ним стоит Nginx | быстро |
| Память и пики трафика | больше ресурсов на запрос | экономнее, стабильнее под нагрузкой |
| Настройки PHP для сайта | панель хостинга или директивы в .htaccess | панель хостинга или файл .user.ini |
| Переезд старого сайта | без изменений в правилах | правила нужно адаптировать |
| Кому подходит | большинству сайтов на CMS, особенно при переезде | магазинам и сайтам с большим трафиком, когда правила уже перенесены |
Файл .htaccess — это набор инструкций для Apache, который CMS обычно кладёт в корень сайта. На Nginx без переноса перестанут работать:
index.php. Без него внутренние страницы отдают 404;.htpasswd;php_value memory_limit — в режиме PHP-FPM их задают в панели или в .user.ini.После любой смены режима проверьте редиректы: удобно делать это инструментом проверки редиректов, а заголовки безопасности — проверкой заголовков.
Для большинства CMS базовое правило ЧПУ в Nginx — одна директива. Для WordPress и Joomla оно выглядит так:
location / {
try_files $uri $uri/ /index.php?$args;
}
Для Drupal — почти так же, но без проверки каталогов ($uri/):
location / {
try_files $uri /index.php?$query_string;
}
Для 1С-Битрикс запросы, которым не соответствует ни один файл, передают на /bitrix/urlrewrite.php (упрощённо):
location / {
try_files $uri $uri/ @bitrix;
}
location @bitrix {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php;
fastcgi_pass php-fpm;
}
А запрет доступа к скрытым служебным файлам, кроме папки .well-known для SSL-сертификатов, — так:
location ~ /\.(?!well-known) {
deny all;
}
У PrestaShop и OpenCart наборы правил длиннее — для изображений товаров, ЧПУ категорий и защиты служебных папок, — а точные правила зависят от версии и модулей. На виртуальном хостинге конфигурацию Nginx обычно меняет поддержка: на нашем хостинге эти правила под ваш сайт настраиваем мы.
PageSpeed — модуль веб-сервера, который оптимизирует страницы «на лету»: минифицирует и объединяет CSS и JavaScript, пережимает изображения, может конвертировать их в WebP и добавлять отложенную загрузку. Для старого сайта без современной сборки фронтенда это быстрый способ уменьшить вес страниц без правок в коде.
Но есть и нюансы:
Правильный порядок: замерить скорость до изменений, включить PageSpeed на копии или в спокойное время, проверить страницы и формы и замерить ещё раз — аудитом скорости или по методике из статьи о TTFB и Core Web Vitals. Оставляйте модуль, только если результат стал лучше.
Кеширование байт-кода OPcache не зависит от режима: и модуль Apache, и PHP-FPM держат скомпилированный PHP-код в памяти, поэтому CMS не перекомпилирует свои файлы при каждом запросе. Проверьте, что OPcache включён для вашей версии PHP, — это один из самых дешёвых способов уменьшить время ответа сервера.
| Платформа | Модуль Apache | Nginx + PHP-FPM |
|---|---|---|
| WordPress | проще всего при переезде | хороший выбор: правило ЧПУ простое, плагины кеша работают |
| Joomla | достаточно переименовать htaccess.txt в .htaccess | после переноса правил ЧПУ и защиты |
| Drupal | собственный .htaccess Drupal работает сразу | с рекомендуемыми правилами для Drupal |
| PrestaShop | .htaccess генерирует сам PrestaShop | для нагруженных магазинов, правила сложнее |
| OpenCart | достаточно переименовать .htaccess.txt в .htaccess | после настройки правил для SEO-адресов |
| 1С-Битрикс | самый простой и распространённый вариант | через правила для urlrewrite.php |
| Laravel и собственные PHP-проекты | работает с .htaccess в папке public | естественный выбор: корень сайта — папка public |
На нашем хостинге режим PHP выбирается для каждого сайта отдельно, вместе с версией PHP от 5.6 до 8.5. Для конкретных платформ есть отдельные страницы: WordPress, Joomla, Drupal, PrestaShop, 1С-Битрикс, а также Laravel и PHP.
.htaccess на сайте — не только в корне, но и во вложенных папках..user.ini.Модуль Apache — режим с лучшей совместимостью: правила .htaccess работают, и переезд проходит без сюрпризов. Nginx + PHP-FPM быстрее и экономнее, но требует перенести правила в конфигурацию. PageSpeed — полезный инструмент для старых сайтов, если включать его осторожно и измерять результат. А версию PHP для своей CMS подскажет наша таблица совместимости PHP.
Если не хочется разбираться с правилами Nginx самостоятельно, напишите BB STUDIO: бесплатно перенесём сайт на наш хостинг, подберём режим и настроим правила под ваш сайт.
Давайте вместе создадим что-то потрясающее