Створюємо цифрові рішення, які працюють на бізнес
У панелі хостингу поруч із версією 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: перенесемо сайт на наш хостинг безкоштовно, оберемо режим і налаштуємо правила під ваш сайт.
Давайте разом створимо щось дивовижне