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

Nginx під PrestaShop ivt.uaan.ne

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 та OPcache ivan.net.ua

Конфігурація пулу 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 ivan.net.ua

Для зменшення кількості повторних запитів до бази даних під час генерації сторінок каталогу обов’язково використовується 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 — це запорука високої конверсії та комфорту покупців.