Установка та налаштування CMS OpenCart
Установка OpenCart — це не просто розпаковування архіву. Правильно налаштований сервер, коректна конфігурація PHP і бази даних, налаштування прав файлової системи і первинна конфігурація самої CMS — сукупність рішень, які визначають стабільність і продуктивність магазину на роки вперед.
Вимоги до сервера
OpenCart 4.x потребує:
| Компонент | Мінімум | Рекомендується |
|---|---|---|
| PHP | 8.0 | 8.2+ |
| MySQL | 5.7 | 8.0 |
| MariaDB | — | 10.6+ |
| Веб-сервер | Apache / nginx | nginx |
| Розширення PHP | curl, zip, zlib, gd, mysqli, mbstring | + opcache, redis |
| Пам'ять PHP | 128 MB | 256 MB+ |
Перевірка розширень:
php -m | grep -E 'curl|zip|gd|mysqli|mbstring|redis|opcache'
Конфігурація PHP
Файл php.ini або директива в nginx.conf:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_vars = 10000
date.timezone = Europe/Kyiv
; Обов'язково для продуктивності
opcache.enable = 1
opcache.memory_consumption = 256
opcache.max_accelerated_files = 20000
opcache.revalidate_freq = 60
max_input_vars = 10000 — важливо для роботи з великими формами в OpenCart (налаштування опцій товару може передавати багато полів).
Конфігурація nginx
server {
listen 443 ssl http2;
server_name myshop.ua www.myshop.ua;
root /var/www/myshop/public_html;
index index.php;
# SSL (Let's Encrypt або комерційний сертифікат)
ssl_certificate /etc/letsencrypt/live/myshop.ua/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myshop.ua/privkey.pem;
# SEO URL
location / {
try_files $uri $uri/ @opencart;
}
location @opencart {
rewrite ^/(.+)$ /index.php?_route_=$1 last;
}
# Запрет доступу до служебних файлів
location ~ ^/(system|admin/config\.php|config\.php) {
deny all;
}
# PHP обробка
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_read_timeout 300;
}
# Кешування статики
location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
}
# Редирект HTTP → HTTPS
server {
listen 80;
server_name myshop.ua www.myshop.ua;
return 301 https://myshop.ua$request_uri;
}
Установка OpenCart
Крок 1: Завантаження та розпакування
cd /var/www/myshop
wget https://github.com/opencart/opencart/releases/download/4.0.2.3/opencart-4.0.2.3.zip
unzip opencart-4.0.2.3.zip
cp -r upload/* public_html/
cd public_html
Крок 2: Копіювання конфігураційних шаблонів
cp config-dist.php config.php
cp admin/config-dist.php admin/config.php
Крок 3: Права доступу
# Директорії для запису
chmod 775 system/storage/cache/
chmod 775 system/storage/logs/
chmod 775 system/storage/download/
chmod 775 system/storage/upload/
chmod 775 image/
chmod 775 image/cache/
chmod 664 config.php admin/config.php
chown -R www-data:www-data /var/www/myshop/public_html/
Крок 4: Створення бази даних
CREATE DATABASE opencart CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'opencart_user'@'localhost' IDENTIFIED BY 'strong_password_here';
GRANT ALL PRIVILEGES ON opencart.* TO 'opencart_user'@'localhost';
FLUSH PRIVILEGES;
Крок 5: Установка через веб-майстер
Відкрийте https://myshop.ua/install/ і пройдіть 4 кроки:
- Ліцензійна угода
- Перевірка вимог (усі пункти мають бути зеленими)
- Налаштування БД та адміністратора
- Завершення
Після завершення — видаліть папку /install/:
rm -rf public_html/install/
Перенесення storage за веб-рут
За замовчуванням system/storage/ знаходиться всередині веб-рута — це небезпечно (прямий доступ до логів і кешу). Перенесемо:
mv public_html/system/storage/ /var/www/myshop/storage/
У config.php:
define('DIR_STORAGE', '/var/www/myshop/storage/');
У admin/config.php — аналогічно. Перезавантажте PHP-FPM.
Первинна налаштування через адмін-панель
System → Settings → General:
- Store Name, Address, Email, Phone
- Meta Title (назва для головної сторінки)
System → Settings → Server:
- Use SEO URL's: Yes (обов'язково)
- Output Compression Level: 5 (gzip)
- Error Display: No (на production)
- Error Log: Yes
System → Settings → Image:
- Image Width/Height для різних контекстів:
- Category image: 300×300
- Product image (каталог): 400×400
- Product image (карточка): 800×800
- Cart image: 100×100
Неправильні розміри зображень — часта причина повільного завантаження: OpenCart створює thumbnails при першому звертанні, великі розміри = довга генерація.
Налаштування локалі
System → Localization → Languages → Українська
→ Status: Enabled
→ Sort Order: 1
System → Localization → Currencies → Українська гривня
→ Code: UAH
→ Symbol Left: (пусто)
→ Symbol Right: ₴
→ Decimal Places: 2
→ Status: Enabled
→ Default: Yes
Оновлення курсів валют (автоматично від ECB/Yahoo Finance або вручну):
System → Localization → Currencies → Update Currency Rates
Підключення SSL/HTTPS
Після установки SSL-сертифіката:
System → Settings → Server
→ Use SSL: Yes
→ HTTPS server: https://myshop.ua/
Якщо сайт за Cloudflare або proxy — додатково у index.php на початку файлу:
// Якщо proxy передає HTTPS
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
Безпека після установки
- Перейменувати
/admin/на непередбачуване ім'я (наприклад/store-control-9x7k/) - Налаштувати HTTP Basic Auth на папку адміністратора як другий фактор
- Оновити
admin/config.phpз новим шляхом - Додати
location /store-control-9x7k { auth_basic ...; }в nginx - Встановити розширення для двофакторної аутентифікації в админку
Терміни
- Базова установка на підготовлений сервер: 2–4 години
- Налаштування nginx + PHP + SSL з нуля: 4–8 годин
- Первинна конфігурація магазину (локаль, налаштування, безпека): 2–3 години
- Разом: 1 робочий день.







