Гид по технологиям

Установка и настройка X-Cart на Debian 9.2

9 min read E-Commerce Обновлено 23 Nov 2025
Установка X-Cart на Debian 9.2
Установка 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/

Подготовка системы — пошагово

  1. Обновите репозитории и пакеты:
apt update
apt upgrade
  1. Задайте hostname сервера (замените xcart на желаемое имя):
hostnamectl set-hostname xcart

Проверка:

hostnamectl
cat /etc/hostname
hostname -s
hostname -f

Проверка hostname и /etc/hostname

  1. Перезагрузите сервер, чтобы применить ядро и hostname:
systemctl reboot
  1. Установите полезные утилиты:
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: Apache слушает порт 80

Альтернатива: вместо netstat можно использовать ss:

ss -tulpn

Вывод ss для проверки процессов и портов

Если включён брандмауэр UFW, разрешите HTTP:

ufw allow WWW

или

ufw allow 80/tcp

Для iptables (и сохраняемых правил):

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

Включите модуль rewrite и перезапустите Apache:

a2enmod rewrite
systemctl restart apache2

Проверьте отображение стандартной страницы Apache по IP или домену:

http://your_domain.tld

Apache default page

Включение SSL на Apache (самоподписанные сертификаты по умолчанию)

Для тестовой HTTPS‑связи включите модуль ssl и стандартный SSL‑сайт:

a2enmod ssl
a2ensite default-ssl.conf

Откройте файл SSL конфигурации и включите URL rewrite (добавьте после DocumentRoot):

nano /etc/apache2/sites-enabled/default-ssl.conf

Добавьте:


  Options +FollowSymlinks
  AllowOverride All
  Require all granted

Измените VirtualHost, если нужно, чтобы он слушал на 443:

Редактирование default-ssl.conf

Повторите те же директивы Directory и для /etc/apache2/sites-enabled/000-default.conf, затем перезапустите Apache:

systemctl restart apache2

Перейдите по https://yourdomain.tld — браузер предупредит из‑за самоподписанного сертификата. Примите предупреждение для продолжения.

Браузерное предупреждение о самоподписанном сертификате

Apache default page по HTTPS после принятия исключения

Если firewall блокирует HTTPS, откройте порт 443:

ufw allow 'WWW Full'

или

ufw allow 443/tcp

Для iptables:

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-persistent save
systemctl 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, чтобы убедиться в корректной настройке.

PHP info — настройки даты и времени

После проверки удалите 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 root
mysql -h localhost -u root -p

Создайте базу и пользователя для X‑Cart (замените имена и пароль):

mysql -u root -p
create database my_xcart;
grant all privileges on my_xcart.* to 'xcart_user' identified by 'x_password';
flush privileges;
exit

Создание базы данных X-Cart

Перезапустите сервисы и проверьте статус:

systemctl restart mysql apache2
systemctl status mysql apache2

Загрузка и распаковка X‑Cart

  1. Скачайте 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
  1. Проверьте наличие архива на сервере:
ssh root@your_server_IP_or_domain 'ls /tmp'

Файл архива X-Cart в /tmp

  1. Удалите дефолтный index.html и info.php, если они есть:
rm /var/www/html/index.html
rm /var/www/html/info.php
  1. Распакуйте архив и скопируйте файлы в веб‑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/
  1. Установите владельца файлов в www‑data:
chown -R www-data:www-data /var/www/html/
ls -al /var/www/html/

Файлы X-Cart в /var/www/html

Запуск веб‑инсталлятора X‑Cart

Откройте браузер и перейдите по HTTPS к вашему домену или IP. На первой странице установщика будет сообщение, что X‑Cart не установлен — нажмите «Click here» или эквивалент.

https://yourdomain.tld

Экран начала установки X-Cart

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

Лицензионное соглашение X-Cart

Создание администратора X-Cart

Настройка базы данных в установщике

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

Процесс установки X-Cart

После завершения установщик покажет ссылки на 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.php
chown -R root:root /var/www/html/etc/
chown root:root /var/www/html/config.php

Войдите в админку по https://yourdomain.tld/admin.php с учётными данными, указанными при установке.

Вход в панель администратора X-Cart

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

Уведомление об обновлениях X-Cart

Перенаправление 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-apache
certbot --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/

Типичные ошибки и способы устранения

  1. Ошибка 500 при обращении к сайту

    • Проверьте /var/log/apache2/error.log
    • Убедитесь, что права файлов и владельцы корректны
    • Проверьте синтаксис .htaccess и наличие модуля rewrite
  2. Установщик не видит базу данных

    • Убедитесь, что MariaDB запущен и пользователь имеет права
    • Проверьте, что MySQL слушает на localhost и нет bind‑address, блокирующего соединение
  3. PHP не загружает расширения (mbstring, gd и т.п.)

    • Проверьте php -m и phpinfo(); при необходимости установите нужные модули
  4. Проблемы с правами записи в каталоги (установщик не может создать директории)

    • Проверьте владельца и права: chown -R www-data:www-data /var/www/html/
  5. Сертификат Let’s Encrypt не выписывается

    • Убедитесь, что порт 80 открыт и домен указывает на сервер
    • Проверьте валидность DNS и отсутствие прокси, мешающего прохождению ACME‑челленджа

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

Регулярно делайте бэкапы:

  • Файловая копия /var/www/html/
  • Экспорт базы данных: mysqldump my_xcart > my_xcart.sql
  • Конфигурации Apache и php.ini

Простой план отката:

  1. Остановить Apache: systemctl stop apache2
  2. Восстановить /var/www/html/ из архива
  3. Восстановить базу: mysql -u root -p my_xcart < my_xcart.sql
  4. Перезапустить службы: 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)

  1. Обновить систему и задать hostname
  2. Установить Apache, PHP и расширения
  3. Установить и защитить MariaDB
  4. Распаковать X‑Cart в /var/www/html
  5. Выполнить веб‑инсталлятор
  6. Защитить конфиги и настроить HTTPS
  7. Проверить работоспособность и настроить бэкапы

Примеры тесткейсов / сценариев проверки

  • Создание товара в админке → товар отображается в 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 на Debian 9.2, настроили веб‑сервер, PHP и базу данных, прошли веб‑инсталлятор и защитили ключевые конфигурации. В производственной среде обязательно используйте доверенные SSL‑сертификаты, настройте мониторинг, автоматические бэкапы и регулярно применяйте обновления.

В случае нестандартных требований (Nginx, контейнеры, кластеризация баз данных) рассмотрите альтернативные сценарии развертывания и миграции.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Почта в RSS и публикация на сайте
Веб-инструменты

Почта в RSS и публикация на сайте

Вставить PDF в Word — простые способы
Microsoft Word

Вставить PDF в Word — простые способы

Письма для мобильных: 7 ключевых правил
Электронная почта

Письма для мобильных: 7 ключевых правил

Добавить функцию Snooze в Gmail без приложений
Productivity

Добавить функцию Snooze в Gmail без приложений

Автообновление контейнеров с Podman
DevOps

Автообновление контейнеров с Podman

Ошибка system cannot find python.exe — как исправить
ошибки

Ошибка system cannot find python.exe — как исправить