Запуск та підтримка інтернет-магазину на PrestaShop вимагає глибокого розуміння архітектури системного адміністрування. Хоча сама платформа пропонує багатий функціонал для e-commerce, без належної оптимізації серверного середовища на базі Linux каталог із тисячами товарів швидко почне «гальмувати». У цій статті розберемо покрокове налаштування високонавантаженого стека для PrestaShop із використанням Nginx, PHP-FPM, Redis та MariaDB.

1. Оптимізація веб-сервера Nginx під PrestaShop
Класичний зв’язок Apache + PHP часто виявляється занадто ресурсномістким під час сплесків трафіку. Використання Nginx у якості основного веб-сервера дозволяє ефективно обробляти тисячі паралельних з’єднань завдяки подієво-орієнтованій архітектурі.
Приклад оптимізованої конфігурації віртуального хосту:
Nginx
server {
listen 443 ssl http2;
server_name store.example.com;
root /var/www/prestashop;
index index.php;
# Стиснення Brotli та Gzip для прискорення завантаження
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml image/svg+xml;
# Кешування статичних файлів на боці клієнта
location ~* \.(jpg|jpeg|png|webp|avif|css|js|ico|woff2)$ {
expires 1y;
add_header Cache-Control "public, no-transform";
access_log off;
}
# Обробка ЧПУ (Friendly URLs) для PrestaShop
location / {
try_files $uri $uri/ /index.php?$args;
}
# Передача запитів до PHP-FPM
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
}
}
2. Тюнінг PHP-FPM та OPcache
PrestaShop активно працює з ресурсоємними PHP-скриптами. Правильний розподіл процесів у PHP-FPM запобігає переповненню оперативної пам’яті та прискорює час відгуку сервера (TTFB).

Конфігурація пулу PHP-FPM (/etc/php/8.2/fpm/pool.d/www.conf):
pm = dynamic— динамічне керування кількістю воркерів.pm.max_children = 50— максимальна кількість процесів (розраховується виходячи з доступної RAM).pm.start_servers = 10— кількість процесів при старті.pm.max_requests = 500— перезапуск процесів для запобігання витокам пам’яті.
Параметри OPcache в php.ini:
Ini, TOML
opcache.enable=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=30000
opcache.revalidate_freq=0
opcache.save_comments=1
3. Кешування об’єктів та сесій через Redis

Для зменшення кількості повторних запитів до бази даних під час генерації сторінок каталогу обов’язково використовується Redis.
| Компонент | Роль у PrestaShop | Ефект від впровадження |
| Object Cache | Кешування системних конфігурацій та результатів SQL-запитів | Зниження навантаження на MariaDB до 60% |
| Session Storage | Збереження кошиків та сесій користувачів у RAM | Миттєвий відгук при додаванні товарів у кошик |
Для активації відкрийте адмін-панель PrestaShop: Advanced Parameters -> Performance -> Caching, виберіть Redis та вкажіть адресу сокета або IP 127.0.0.1:6379.
4. Налаштування та оптимізація MariaDB/MySQL

База даних у e-commerce — це найбільш вузьке місце під час масових продажів. Основні параметри для конфігурації /etc/mysql/mariadb.conf.d/50-server.cnf:
innodb_buffer_pool_size = 8G— виділіть 50–70% від загального обсягу RAM під кеш індексів та даних InnoDB.innodb_log_file_size = 1G— прискорює транзакційну обробку великої кількості замовлень.max_connections = 300— ліміт одночасних підключень до бази.query_cache_type = 0— вимкніть застарілий Query Cache на користь InnoDB Buffer Pool та Redis.
Висновок ivan.net.ua
Комплексна оптимізація Linux-сервера для PrestaShop дає змогу знизити показник TTFB до значення нижче 150 мс та забезпечити стабільну роботу інтернет-магазину навіть під час пікових навантажень. Системний підхід до налаштування Nginx, PHP-FPM, Redis та MariaDB — це запорука високої конверсії та комфорту покупців.