Установка и настройка X-Cart на Debian 9.2
Введение
Это подробное руководство объясняет, как установить последнюю версию X-Cart на сервер с Debian 9.2 и подготовить рабочий интернет-магазин. X-Cart — PHP‑ориентированная e‑commerce платформа, которую можно запускать в LAMP/LEMP окружении (Apache/Nginx + PHP + MySQL/MariaDB). Документ покрывает подготовку ОС, установку зависимостей, настройку веб‑сервера и PHP, установку MariaDB, саму установку X‑Cart и завершающие шаги по безопасности и оптимизации.
Важно: команда и конфигурации приведены для Debian 9 (Stretch) и PHP 7.0. При использовании других версий PHP/OS некоторые пути и имена пакетов могут отличаться.
Кому это руководство полезно
- Системным администраторам, которые разворачивают магазин на собственном сервере
- Разработчикам, тестирующим X‑Cart локально/на VPS
- Владельцам бизнеса, которые хотят понять этапы развертывания
Требования
- Сервер с Debian 9 (физический или VPS)
- Права sudo или root
- Статический IP или корректная DNS‑настройка домена
- Доменное имя (рекомендуется для HTTPS), но можно использовать IP
- Почтовый сервер или внешний SMTP/IMAP, если нужны уведомления и регистрация
Быстрый список используемых по умолчанию портов и путей
- HTTP: 80
- HTTPS: 443
- MariaDB/MySQL: 3306
- Докрут веб‑root: /var/www/html/
- PHP‑конфиг для Apache (Debian 9, PHP 7.0): /etc/php/7.0/apache2/php.ini
- Apache site‑configs: /etc/apache2/sites-enabled/
Подготовка системы — пошагово
- Обновите репозитории и пакеты:
apt updateapt upgrade- Задайте hostname сервера (замените xcart на желаемое имя):
hostnamectl set-hostname xcartПроверка:
hostnamectlcat /etc/hostnamehostname -shostname -f
- Перезагрузите сервер, чтобы применить ядро и hostname:
systemctl reboot- Установите полезные утилиты:
apt install wget bash-completion zip unzipУстановка Apache и PHP (PHP 7.0)
X‑Cart работает на PHP в связке с веб‑сервером. Для Apache с PHP 7.0 выполните:
apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-mbstring php7.0-curl php7.0-gd php7.0-xml php7.0-opcacheПроверьте, что Apache слушает порт 80:
netstat -tlpnЕсли netstat отсутствует, установите net-tools:
apt install net-tools
Альтернатива: вместо netstat можно использовать ss:
ss -tulpn
Если включён брандмауэр UFW, разрешите HTTP:
ufw allow WWWили
ufw allow 80/tcpДля iptables (и сохраняемых правил):
apt-get install -y iptables-persistentiptables -I INPUT -p tcp --destination-port 80 -j ACCEPTsystemctl iptables-persistent savesystemctl iptables-persistent reloadВключите модуль rewrite и перезапустите Apache:
a2enmod rewritesystemctl restart apache2Проверьте отображение стандартной страницы Apache по IP или домену:

Включение SSL на Apache (самоподписанные сертификаты по умолчанию)
Для тестовой HTTPS‑связи включите модуль ssl и стандартный SSL‑сайт:
a2enmod ssla2ensite default-ssl.confОткройте файл SSL конфигурации и включите URL rewrite (добавьте после DocumentRoot):
nano /etc/apache2/sites-enabled/default-ssl.confДобавьте:
Options +FollowSymlinks
AllowOverride All
Require all granted
Измените VirtualHost, если нужно, чтобы он слушал на 443:

Повторите те же директивы Directory и для /etc/apache2/sites-enabled/000-default.conf, затем перезапустите Apache:
systemctl restart apache2Перейдите по https://yourdomain.tld — браузер предупредит из‑за самоподписанного сертификата. Примите предупреждение для продолжения.


Если firewall блокирует HTTPS, откройте порт 443:
ufw allow 'WWW Full'или
ufw allow 443/tcpДля iptables:
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPTsystemctl iptables-persistent savesystemctl iptables-persistent reloadРекомендация: замените самоподписанный сертификат на сертификат от Let’s Encrypt в продакшене (описано ниже).
Настройка PHP‑параметров
Сделайте резервную копию php.ini и отредактируйте основные настройки:
cp /etc/php/7.0/apache2/php.ini{,.backup}nano /etc/php/7.0/apache2/php.iniНайдите и установите следующие параметры (пример):
file_uploads = On
allow_url_fopen = On
memory_limit = 128M
upload_max_filesize = 64M
date.timezone = Europe/LondonУвеличьте memory_limit и upload_max_filesize при необходимости. Подберите date.timezone в соответствии с вашей зоной (полный список: http://php.net/manual/en/timezones.php).
Для улучшения производительности включите OPCache, добавив в конец php.ini:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1Проверьте, что изменения добавились:
tail /etc/php/7.0/apache2/php.iniПерезапустите Apache:
systemctl restart apache2Создайте PHP info для проверки timezone и модулей:
echo ''| tee /var/www/html/info.phpОткройте https://domain.tld/info.php и прокрутите до Date, чтобы убедиться в корректной настройке.

После проверки удалите info.php или ограничьте к нему доступ в продакшене.
Установка MariaDB и подготовка базы данных
Установите MariaDB и PHP‑модуль для MySQL:
apt install mariadb-server php7.0-mysqlПроверьте, что MariaDB слушает 3306 на localhost:
netstat -tlpn | grep mysqlВойдите в консоль MySQL и временно отключите плагин auth_socket, если требуется, чтобы root мог логиниться по паролю:
mysql -h localhostВ консоли:
use mysql;
update user set plugin='' where user='root';
flush privileges;
exitЗапустите скрипт безопасной настройки:
sudo mysql_secure_installationОтветьте утвердительно на предлагаемые шаги (смена пароля root, удаление анонимных пользователей, отключение удалённого root‑доступа, удаление тестовой базы и т.д.). Скрипт обеспечит базовую безопасность инсталляции.
Проверьте, что вход без пароля запрещён и вход с паролем работает:
mysql -h localhost -u rootmysql -h localhost -u root -pСоздайте базу и пользователя для X‑Cart (замените имена и пароль):
mysql -u root -pcreate database my_xcart;
grant all privileges on my_xcart.* to 'xcart_user' identified by 'x_password';
flush privileges;
exit
Перезапустите сервисы и проверьте статус:
systemctl restart mysql apache2systemctl status mysql apache2Загрузка и распаковка X‑Cart
- Скачайте ZIP‑пакет X‑Cart с https://www.x-cart.com/download.html на рабочую станцию и передайте на сервер (пример scp):
scp x-cart-5.3.3.4-gb.zip root@your_server_IP_or_domain:/tmp- Проверьте наличие архива на сервере:
ssh root@your_server_IP_or_domain 'ls /tmp'
- Удалите дефолтный index.html и info.php, если они есть:
rm /var/www/html/index.htmlrm /var/www/html/info.php- Распакуйте архив и скопируйте файлы в веб‑root:
cd /tmp
unzip x-cart-5.3.3.4-gb.zip
ls -al xcart/
cp -rf xcart/* /var/www/html/
cp xcart/.htaccess /var/www/html/- Установите владельца файлов в www‑data:
chown -R www-data:www-data /var/www/html/
ls -al /var/www/html/
Запуск веб‑инсталлятора X‑Cart
Откройте браузер и перейдите по HTTPS к вашему домену или IP. На первой странице установщика будет сообщение, что X‑Cart не установлен — нажмите «Click here» или эквивалент.

Примите лицензионное соглашение, создайте администратора (email + пароль), укажите параметры базы данных (адрес, имя, пользователя и пароль), при необходимости установите пример каталога и проверьте расширенные настройки (порт 3306 и префикс таблиц xc_ по умолчанию).



Укажите имя веб‑сервера и защищённое имя (Secure web server name), выберите часовой пояс магазина и нажмите Далее. Установка займёт несколько минут, пока инсталлятор создаёт директории и заполняет схему базы данных.

После завершения установщик покажет ссылки на Backoffice и Customer zone.

Frontend магазина доступен по https://yourdomain.tld

Завершающие шаги и защита конфигурации
Ограничьте права на файлы и защитите конфигурационные файлы X‑Cart:
chmod -R 755 /var/www/html/chmod -R 755 /var/www/html/etc/chmod -R 644 /var/www/html/config.phpchown -R root:root /var/www/html/etc/chown root:root /var/www/html/config.phpВойдите в админку по https://yourdomain.tld/admin.php с учётными данными, указанными при установке.

В панели вы увидите уведомление о триальном периоде и должны установить все доступные обновления через меню Update.

Перенаправление HTTP → HTTPS и параметры PHP в .htaccess
Отредактируйте .htaccess:
nano /var/www/html/.htaccessПример секции для PHP‑параметров и перенаправления на HTTPS:
# Modify PHP settings
php_flag register_globals off
php_flag magic_quotes_gpc Off
php_value max_execution_time 200
php_value max_input_time 200
php_value upload_max_filesize 500M
php_value post_max_size 500MДобавьте правила перенаправления на HTTPS и защиту директорий:
# Redirect to HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
После этого посетители будут автоматически перенаправляться на HTTPS.
Рекомендация по сертификатам
В продакшене не используйте самоподписанные сертификаты. Вместо этого получите бесплатный сертификат Let’s Encrypt и автоматизируйте обновление с помощью certbot:
apt install certbot python-certbot-apachecertbot --apache -d yourdomain.tld -d www.yourdomain.tldСледуйте подсказкам certbot для получения и установки сертификата. Certbot также настроит автоматическое продление.
Тесты приёмки и контроль работоспособности
Критерии приёмки:
- По адресу https://yourdomain.tld открывается главная страница магазина
- По адресу https://yourdomain.tld/admin.php доступна админка и вход по указанным учётным данным
- База данных my_xcart заполнена таблицами (не пустая)
- Все статические файлы (CSS/JS/изображения) отдаются корректно, HTTP отвечает 200
- PHP‑параметры (upload_max_filesize, memory_limit, date.timezone) соответствуют требованиям
- SSL‑сертификат валиден и браузер не показывает предупреждение (в случае Let’s Encrypt)
Тесты (пример):
- curl -I https://yourdomain.tld → ожидается 200
- mysql -u xcart_user -p -e “SHOW TABLES;” my_xcart → таблицы установлены
- Проверка прав: ls -al /var/www/html/ и ls -al /var/www/html/etc/
Типичные ошибки и способы устранения
Ошибка 500 при обращении к сайту
- Проверьте /var/log/apache2/error.log
- Убедитесь, что права файлов и владельцы корректны
- Проверьте синтаксис .htaccess и наличие модуля rewrite
Установщик не видит базу данных
- Убедитесь, что MariaDB запущен и пользователь имеет права
- Проверьте, что MySQL слушает на localhost и нет bind‑address, блокирующего соединение
PHP не загружает расширения (mbstring, gd и т.п.)
- Проверьте php -m и phpinfo(); при необходимости установите нужные модули
Проблемы с правами записи в каталоги (установщик не может создать директории)
- Проверьте владельца и права: chown -R www-data:www-data /var/www/html/
Сертификат Let’s Encrypt не выписывается
- Убедитесь, что порт 80 открыт и домен указывает на сервер
- Проверьте валидность DNS и отсутствие прокси, мешающего прохождению ACME‑челленджа
Резервные копии и откат
Регулярно делайте бэкапы:
- Файловая копия /var/www/html/
- Экспорт базы данных: mysqldump my_xcart > my_xcart.sql
- Конфигурации Apache и php.ini
Простой план отката:
- Остановить Apache: systemctl stop apache2
- Восстановить /var/www/html/ из архива
- Восстановить базу: mysql -u root -p my_xcart < my_xcart.sql
- Перезапустить службы: systemctl start mysql apache2
Советы по безопасности и твики для продакшена
- Замените самоподписанный SSL на сертификат Let’s Encrypt или коммерческий CA
- Отключите индексацию директорий в Apache
- Ограничьте доступ к /etc/ и config.php через правила Apache (deny from all) или файловую систему
- Регулярно обновляйте OS и пакеты безопасности
- Настройте fail2ban для защиты SSH и панели администрирования
- Ограничьте доступ к административной панели по IP, если возможно
- Включите HTTPS Strict Transport Security (HSTS) с осторожностью
Пример настройки правила в Apache для защиты каталога /var/www/html/etc:
Require all denied
Альтернативы и вариации развертывания
- Веб‑сервер: вместо Apache можно использовать Nginx (LEMP). X‑Cart совместим, но конфигурация PHP‑FPM и правил переписывания будет отличаться.
- Контейнеризация: X‑Cart можно запускать в Docker‑контейнерах (php-fpm, nginx, mariadb) — это ускоряет миграцию и масштабирование.
- Управляемые хостинги: для быстрого старта можно выбрать SaaS‑версию X‑Cart или управляeмый VPS‑хостинг с преднастроенным стеком.
Миграция и совместимость
Если вы мигрируете с другой версии X‑Cart или другого сервера:
- Проверьте совместимость версии PHP и MySQL/MariaDB
- Экспортируйте и импортируйте базу данных, затем выполните миграционные скрипты обновления X‑Cart в админке
- Проверьте кастомные модули и темы на предмет совместимости с новой версией
Чеклисты по ролям
Администратор сервера:
- Установил и обновил Debian
- Настроил firewall и открыл порты 80/443/22
- Настроил SSL и cron для обновления сертификатов
DevOps / Dev:
- Подготовил php.ini и включил необходимые модули
- Проверил работу OPCache
- Настроил мониторинг и логи
Владелец бизнеса / контент‑менеджер:
- Создал админа магазина
- Установил пример каталога (или загрузил товары)
- Настроил платёжные и доставочные методы
Методология установки (короткий SOP)
- Обновить систему и задать hostname
- Установить Apache, PHP и расширения
- Установить и защитить MariaDB
- Распаковать X‑Cart в /var/www/html
- Выполнить веб‑инсталлятор
- Защитить конфиги и настроить HTTPS
- Проверить работоспособность и настроить бэкапы
Примеры тесткейсов / сценариев проверки
- Создание товара в админке → товар отображается в frontend
- Оформление тестового заказа (платеж в тестовом режиме) → заказ появляется в админке
- Проверка отправки сообщения контактной формы (SMTP/IMAP) → письмо доставлено
- Загрузка большого файла (больше 50 МБ) → соответствует upload_max_filesize
Краткая галерея возможных проблем и их решений
- 403 при доступе к некоторым файлам — проверьте AllowOverride и права
- 502 Bad Gateway (при Nginx + PHP‑FPM) — проверьте сокет PHP‑FPM и права
- Зависание при установке модулей — проверьте лимиты памяти и время выполнения PHP
Глоссарий (1‑строчное пояснение терминов)
- LAMP — стек: Linux + Apache + MySQL/MariaDB + PHP
- SSL/TLS — криптографические протоколы для HTTPS
- OPCache — PHP-кэш байт-кода для ускорения выполнения
- certbot — клиент для получения сертификатов Let’s Encrypt
Короткое объявление для сайта или рассылки (100–200 слов)
Установлен и настроен X‑Cart на Debian 9.2 — теперь ваш интернет‑магазин готов к приёму первых клиентов. Мы развернули Apache + PHP 7.0, настроили MariaDB, включили HTTPS и произвели базовую защиту конфигурационных файлов. Следующие шаги: настроить платёжные шлюзы, заполнить каталог товаров и протестировать рабочие сценарии заказов. Рекомендуется заменить тестовый SSL на сертификат от доверенного CA и настроить регулярные бэкапы для обеспечения отказоустойчивости.
Социальный предпросмотр (рекомендации)
OG‑title: Установка X‑Cart на Debian 9.2 — полный гайд OG‑description: Полное пошаговое руководство по установке X‑Cart: подготовка сервера, Apache/PHP, MariaDB, SSL, тесты и советы по безопасности.
Дополнительные ресурсы
- Документация X‑Cart: https://kb.x-cart.com/en/index.html
- PHP timezone list: http://php.net/manual/en/timezones.php
- Let’s Encrypt: https://letsencrypt.org
Итог
Вы успешно установили X‑Cart на Debian 9.2, настроили веб‑сервер, PHP и базу данных, прошли веб‑инсталлятор и защитили ключевые конфигурации. В производственной среде обязательно используйте доверенные SSL‑сертификаты, настройте мониторинг, автоматические бэкапы и регулярно применяйте обновления.
В случае нестандартных требований (Nginx, контейнеры, кластеризация баз данных) рассмотрите альтернативные сценарии развертывания и миграции.
Похожие материалы
Почта в RSS и публикация на сайте
Вставить PDF в Word — простые способы
Письма для мобильных: 7 ключевых правил
Добавить функцию Snooze в Gmail без приложений
Автообновление контейнеров с Podman