VPS для OpenCart: разворачиваем интернет-магазин
OpenCart — популярный движок для интернет-магазинов, и на собственном VPS он работает быстрее и безопаснее, чем на общем хостинге. Соберём стек, поставим магазин, настроим SSL и права доступа. Всё командами, которые можно копировать.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Готовим окружение
OpenCart работает на nginx + PHP-FPM + MariaDB. Ставим PHP-расширения, которые движок проверяет в системном отчёте.
apt update && apt upgrade -y
apt install nginx mariadb-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-bcmath -y
systemctl enable --now nginx mariadb php8.2-fpm
Для магазина важна скорость каталога: AMD EPYC + NVMe на MAATRIX держат отклик карточек товара низким даже при тысячах SKU и активной выборке из базы.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для интернет-магазинаБаза данных магазина
mysql_secure_installation
mysql -u root -p
CREATE DATABASE opencart_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'oc_user'@'localhost' IDENTIFIED BY 'СложныйПароль123';
GRANT ALL PRIVILEGES ON opencart_db.* TO 'oc_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Скачиваем OpenCart
Забираем релиз с GitHub и распаковываем. В архиве движок лежит в подкаталоге upload — именно он и есть корень сайта:
mkdir -p /var/www/opencart && cd /var/www/opencart
curl -L -o opencart.zip https://github.com/opencart/opencart/releases/download/4.0.2.0/opencart-4.0.2.0.zip
apt install unzip -y && unzip opencart.zip
mv upload/* upload/.htaccess.txt ./ 2>/dev/null; mv upload/* ./
Готовим конфигурационные файлы, которые OpenCart ждёт при установке:
cp config-dist.php config.php
cp admin/config-dist.php admin/config.php
chown -R www-data:www-data /var/www/opencart
chmod -R 755 /var/www/opencart
Конфиг nginx для OpenCart
server {
listen 80;
server_name ваш-домен.ru;
root /var/www/opencart;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
location ~* \.(engine|inc|log|sql)$ {
deny all;
}
}
ln -s /etc/nginx/sites-available/opencart /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
SSL и завершение установки
Выпускаем сертификат — магазину HTTPS обязателен для приёма оплат:
apt install certbot python3-certbot-nginx -y
certbot --nginx -d ваш-домен.ru
Открываем сайт, проходим веб-установщик (данные базы: opencart_db, oc_user). После установки удаляем каталог install — иначе движок откажется работать:
rm -rf /var/www/opencart/install
- Частая ошибка: нет прав на storage/ и system/storage/ — проверьте, что владелец www-data.
- Ежедневные бэкапы MAATRIX критичны для магазина: заказы и клиентскую базу нельзя терять.
Кэш и оптимизация OpenCart
OpenCart умеет кэшировать шаблоны и SEO-ссылки. В админке зайдите в System → Maintenance и включите кэш темы, а для каталога используйте встроенное кэширование запросов. Но главный прирост, как и у любой PHP-CMS, даёт OPcache:
opcache.enable=1
opcache.memory_consumption=192
opcache.max_accelerated_files=15000
opcache.revalidate_freq=2
systemctl restart php8.2-fpm
Для магазина с большим каталогом подкрутите InnoDB в MariaDB, чтобы товарные таблицы жили в памяти. Создайте /etc/mysql/mariadb.conf.d/99-oc.cnf:
[mysqld]
innodb_buffer_pool_size = 512M
innodb_flush_log_at_trx_commit = 2
systemctl restart mariadb
И обязательно включите SEO URL в System → SEO — иначе ссылки будут вида index.php?route=..., что плохо и для людей, и для поиска. Вместе кэш, OPcache и тюнинг базы держат карточки товара быстрыми даже в час пик, а NVMe у MAATRIX убирает дисковую задержку при выборке из каталога.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для интернет-магазинаОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Какая версия PHP нужна OpenCart?
OpenCart 4 требует PHP 8.0+. Оптимально PHP 8.2. Обязательно расширения gd, curl, mbstring, zip и bcmath — иначе установщик выдаст предупреждения.
Куда вынести каталог storage?
Для безопасности storage лучше держать вне webroot. OpenCart 4 позволяет указать путь к нему при установке — так товарные файлы недоступны напрямую из интернета.
Потянет ли младший VPS магазин?
Небольшой магазин до пары тысяч товаров комфортно работает на 2 ГБ RAM. Для акций и пиков трафика берите 4 ГБ и NVMe — на MAATRIX апгрейд плана делается без переезда.