4.1.13 Установка Zen Cart CMS на хостинг и сервер

Zen Cart Banner The Host

Zen Cart — открытая CMS для интернет-магазинов на PHP. Поддерживает систему модулей, шаблонов и плагинов оплаты/доставки. Гибкая архитектура, активное сообщество и совместимость с современными версиями PHP делают Zen Cart подходящим решением для малого и среднего e-commerce, особенно когда важны расширяемость и контроль над кодом. Поддерживает мультиязычность и мультивалютность, гибкое управление каталогом, купонами и налоговыми правилами, а также встроенные инструменты SEO. Через каталог модулей легко подключать платёжные шлюзы и службы доставки, интегрироваться с CRM/ERP и настраивать темы без вмешательства в ядро.

Подготовка окружения

Требования

  • Активная услуга Хостинга, Виртуального сервера или Выделенного сервера
  • CPU: 2–4 vCPU; RAM: от 4 ГБ; SSD: от 20 ГБ
  • ОС: Ubuntu 22.04 LTS или 24.04 LTS
  • Веб-сервер: Nginx 1.20+ или Apache 2.4+ (рекомендуется Unix-среда)
  • PHP: 8.2–8.3, memory_limit512M
  • СУБД: MySQL 8.0+ или MariaDB 10.5+
  • Доступ: root или пользователь с правами sudo

Переменные окружения

  • DOMAIN_NAME — Ваше доменное имя
  • ZC_VERSION — версия Zen Cart, например 1.5.9 (уточните в разделе Releases на GitHub)
  • DB_HOST, DB_NAME, DB_USER, DB_PASSWORD — параметры подключения к БД
  • WWW_USER, WWW_GROUP — пользователь и группа веб-сервера (обычно www-data)
  • ADMIN_EMAIL, ADMIN_PASS — учётные данные администратора

Установка Zen Cart на хостинг

  1. Скачайте стабильную версию Zen Cart с официального сайта Zen Cart
  2. Загрузите архив на хостинг через менеджер файлов или по FTP.
  3. Создайте пользователя и базу данных. Сохраните DB_HOST, DB_NAME, DB_USER, DB_PASSWORD.
  4. Запустите установщик через браузер. Откройте http://DOMAIN_NAME/zc_install/ и следуйте мастеру установки:

web-install-step_1

  • Укажите адрес административной панели и настройки каталогов

web-install-step_2

  • Заполните параметры созданой ранее базы данных (DB_HOST, DB_NAME, DB_USER, DB_PASSWORD);

web-install-step_3

  • Дождитесь окончания настройки базы данных

web-install-step_4

  • Заполните данные для административного пользователя

web-install-step_5

  • Завершите установку и сохраните выданный установщиком конфигурационный файл.

web-install-step_6

Совет! После установки переименуйте каталог админ-панели в уникальное имя. Установщик предложит это сделать автоматически.

Установка Zen Cart на сервер

  1. Подготовьте каталог и скачайте релиз.
Создание каталога и загрузка архива
sudo mkdir -p /var/www/DOMAIN_NAME && cd /var/www/DOMAIN_NAME
export ZC_VERSION=1.5.9 # пример; уточните актуальную версию
wget -O zencart.zip "https://github.com/zencart/zencart/archive/refs/tags/v${ZC_VERSION}.zip"
unzip zencart.zip && rm zencart.zip
# Перенесём файлы каталога, если они в поддиректории
shopt -s dotglob nullglob; mv zencart-*/\* .; rmdir zencart-*/ || true
  1. Создайте базу и пользователя.
Создание БД и пользователя MySQL/MariaDB
mysql -u root <<'SQL'
CREATE DATABASE DB_NAME CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'DB_USER'@'localhost' IDENTIFIED BY 'DB_PASSWORD';
GRANT ALL PRIVILEGES ON DB_NAME.* TO 'DB_USER'@'localhost';
FLUSH PRIVILEGES;
  1. Установите PHP и расширения.
Установка PHP и модулей (Ubuntu 22.04/24.04)
sudo apt update
sudo apt install -y php8.2 php8.2-fpm php8.2-cli php8.2-mysql php8.2-xml \
  php8.2-gd php8.2-curl php8.2-zip php8.2-intl php8.2-mbstring
php -v
php -m | grep -E "mbstring|intl|zip|curl|xml|gd|mysql"

Настройте конфигурацию php в файле php.ini: memory_limit=512M, max_execution_time=300. Проверьте версии сервисов:

Проверка версий ПО
nginx -v
mysql --version
php -v
  1. Дайте права веб-серверу.
Права на каталог проекта
sudo chown -R WWW_USER:WWW_GROUP /var/www/DOMAIN_NAME
find /var/www/DOMAIN_NAME -type d -exec chmod 755 {} \;
find /var/www/DOMAIN_NAME -type f -exec chmod 644 {} \;
  1. Запустите веб-установщик. Откройте http://DOMAIN_NAME/zc_install/ и завершите установку.

Настройка веб-сервера Nginx

/etc/nginx/sites-available/zencart.conf
server {
    listen 80;
    server_name DOMAIN_NAME;

    root /var/www/DOMAIN_NAME/;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_read_timeout 120;
    }

    # Защита от прямого доступа к служебным путям
    location ~* ^/(zc_install/|cache/|logs/|includes/extra_configures/|.git/) {
        deny all;
        return 403;
    }
}

Активируйте сайт и перезапустите Nginx:

sudo ln -s /etc/nginx/sites-available/zencart.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

Важно: после успешной установки удалите каталог zc_install/ и переименуйте каталог admin в уникальное имя. Иначе административная панель и инсталлятор могут стать точкой атаки.

Настройка дополнительных функций Zen Cart

SSL-сертификат (HTTPS)

Для работы по защищенному протоколу HTTPS используйте Let’s Encrypt или коммерческий SSL-сертификат

ЧПУ (SEO URLs) и кэш

  • Включите модуль ЧПУ в админ-панели и проверьте открытие категорий/товаров без index.php?main_page=....
  • Активируйте OPcache в PHP для ускорения загрузки.

Почта магазина (SMTP)

Укажите SMTP-параметры в админ-панели Zen Cart, чтобы исключить проблемы с отправкой писем:

Пример .env для msmtp/relay
account default
host SMTP_HOST
port SMTP_PORT
auth on
user SMTP_USER
password SMTP_PASSWORD
tls on

Подсказка! С параметрами для подключения Вы можете ознакомиться в нашей инструкции

Резервное копирование

  • Делайте регулярные дампы БД:
Ежедневный бэкап БД (cron)
0 2 * * * /usr/bin/mysqldump -u DB_USER -p'DB_PASSWORD' DB_NAME | gzip > /backup/zencart-$(date +\%F).sql.gz
  • Храните копии вне сервера приложения.

Проверка работы

  1. Откройте витрину: http://DOMAIN_NAME/ — главная страница должна загружаться без ошибок 404/500.
  2. Войдите в административную панель: http://DOMAIN_NAME/admin_ваш_суффикс/. Убедитесь, что доступ возможен только по новому пути.
  3. Проверьте версию Zen Cart:
Получение версии из includes/version.php
grep -E "PROJECT_VERSION_(MAJOR|MINOR|PATCH)" includes/version.php

Вы увидите номера MAJOR/MINOR/PATCH, соответствующие установленному релизу.

Распространённые ошибки
Ошибка / Симптом Причина Решение
“Deprecated”/“Warning” на витрине Несовпадение версии PHP/модулей Используйте PHP 8.2–8.3, отключите display_errors в продакшене
403 на /admin_.../ Неправильные права на файлы и папки сайта, которые мешают процессам пользователя www-data запись в указанную директорию Проверьте владельца и location-правила Nginx
Пустые изображения/стили Неверные корневые пути в конфиге Исправьте пути в includes/configure.php

Полезные ссылки