4.1.13 Встановлення Zen Cart на хостинг та сервер

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-friendly URLs і кеш

  • Увімкніть модуль ЧПУ (людинозрозумілі URL) в адмін-панелі та перевірте відкриття категорій/товарів без 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_your_suffix/. Переконайтеся, що доступ можливий лише за новим шляхом.
  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

Корисні посилання