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

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_limit≥512M - СУБД: 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 на хостинг
- Скачайте стабильную версию Zen Cart с официального сайта Zen Cart
- Загрузите архив на хостинг через менеджер файлов или по FTP.
- Создайте пользователя и базу данных. Сохраните
DB_HOST,DB_NAME,DB_USER,DB_PASSWORD. - Запустите установщик через браузер. Откройте
http://DOMAIN_NAME/zc_install/и следуйте мастеру установки:

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

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

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

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

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

Совет! После установки переименуйте каталог админ-панели в уникальное имя. Установщик предложит это сделать автоматически.
Установка Zen Cart на сервер
- Подготовьте каталог и скачайте релиз.
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
- Создайте базу и пользователя.
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;
SQL
- Установите PHP и расширения.
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
- Дайте права веб-серверу.
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 {} \;
- Запустите веб-установщик. Откройте
http://DOMAIN_NAME/zc_install/и завершите установку.
Настройка веб-сервера Nginx
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-сертификат
Добавляю раздел про Apache и .htaccess, обеспечивающий работу ЧПУ.
.htaccess для ЧПУ (SEO-URLs)
Информация! Zen Cart на Apache использует .htaccess и модуль mod_rewrite для ЧПУ. В конфигурации Nginx .htaccess не применяется — эквивалент обеспечивается правилом try_files из раздела Nginx.
- Включите
mod_rewriteи разрешите.htaccessдля каталога сайта.
sudo a2enmod rewrite
sudo systemctl reload apache2
<VirtualHost *:80>
ServerName DOMAIN_NAME
DocumentRoot /var/www/DOMAIN_NAME/
<Directory /var/www/DOMAIN_NAME/>
AllowOverride All
Options -Indexes -MultiViews
Require all granted
</Directory>
</VirtualHost>
- Создайте/обновите
.htaccessв корне проекта.
# ЧПУ для Zen Cart (Apache)
<IfModule mod_rewrite.c>
RewriteEngine On
# Укажите подкаталог, если магазин установлен, например, в /shop/
RewriteBase /
# Пропускаем реальные файлы и каталоги
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Остальное направляем на фронт-контроллер
RewriteRule . index.php [L]
</IfModule>
# Базовая защита
Options -Indexes
<FilesMatch "\.(tpl|inc|bak|sql|sh)$">
Require all denied
</FilesMatch>
Обратите внимание! Если магазин установлен в подкаталог, замените RewriteBase / на RewriteBase /shop/. При конфликтах с контент-негациацией добавьте Options -MultiViews (уже присутствует в примере Directory).
- Примените конфигурацию.
sudo apachectl configtest
sudo systemctl reload apache2
Проверка! Категории и товары должны открываться без index.php?main_page=.... При 404 проверьте, что AllowOverride All активен именно для каталога магазина и .htaccess читается (посмотрите логи: sudo tail -f /var/log/apache2/error.log).
Почта магазина (SMTP)
Укажите SMTP-параметры в админ-панели Zen Cart, чтобы исключить проблемы с отправкой писем:
account default
host SMTP_HOST
port SMTP_PORT
auth on
user SMTP_USER
password SMTP_PASSWORD
tls on
Подсказка! С параметрами для подключения к электронной почте/отправки электронных писем Вы можете ознакомиться в нашей инструкции
Резервное копирование
- Делайте регулярные дампы БД:
0 2 * * * /usr/bin/mysqldump -u DB_USER -p'DB_PASSWORD' DB_NAME | gzip > /backup/zencart-$(date +\%F).sql.gz
- Храните копии вне сервера приложения.
Проверка работы
- Откройте витрину:
http://DOMAIN_NAME/— главная страница должна загружаться без ошибок 404/500. - Войдите в административную панель:
http://DOMAIN_NAME/admin_ваш_суффикс/. Убедитесь, что доступ возможен только по новому пути. - Проверьте версию установленного Zen Cart:
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 |
Полезные ссылки
Официальная документация и ресурсы


