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

Установка X‑Cart 5 на Ubuntu 18.04 с Nginx и MySQL

• 6 min read • DevOps • Обновлено 24 Nov 2025
Установка X‑Cart 5 на Ubuntu 18.04 с Nginx и MySQL
Установка X‑Cart 5 на Ubuntu 18.04 с Nginx и MySQL

Обложка: установка X-Cart на сервере

Основная цель

Пошаговая инструкция по развертыванию X‑Cart 5 на сервере Ubuntu 18.04 LTS с использованием Nginx и MySQL, а также настройке HTTPS с помощью бесплатных сертификатов Let’s Encrypt (acme.sh).

Содержание

  • Требования
  • Начальные шаги
  • Установка PHP и расширений
  • Установка MySQL и создание базы
  • Получение сертификата с acme.sh
  • Установка и настройка Nginx
  • Установка X‑Cart
  • Завершение установки и проверки
  • Безопасность и рекомендации
  • Чек-листы и критерии приёмки
  • Короткий анонс

Требования

  • PHP 7.2 или новее
  • PHP-расширения: pdo, phar, mysql, mbstring, curl и другие, перечисленные ниже
  • MySQL 5.7.7+ или эквивалент MariaDB
  • Nginx

Краткое определение: PHP-FPM — процессный менеджер, который запускает PHP-код отдельно от веб-сервера.

Начальные шаги

Проверьте версию Ubuntu:

lsb_release -ds
# Пример вывода: Ubuntu 18.04.4 LTS

Настройте часовой пояс:

sudo dpkg-reconfigure tzdata

Обновите пакеты системы:

sudo apt update && sudo apt upgrade -y

Установите базовые утилиты:

sudo apt install -y curl wget vim git unzip socat bash-completion

Важно: выполняйте обновления и установку пакетов от имени пользователя с sudo. На продуктивных серверах заранее запланируйте окно обслуживания.

Шаг 1 — Установка PHP и расширений

Установите PHP и необходимые расширения:

sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-curl php7.2-mysql php7.2-json php7.2-xml php7.2-phar php7.2-pdo php7.2-gd

Проверьте установленные модули PHP:

php -m

Проверьте версию PHP:

php --version
# пример: PHP 7.2.17-0ubuntu0.18.04.1 (cli)

PHP-FPM обычно запускается автоматически и включается для перезагрузок в Ubuntu 18.04.

Шаг 2 — Установка MySQL и создание базы

Установите MySQL:

sudo apt install -y mysql-server

Проверьте версию MySQL:

mysql --version
# пример: mysql  Ver 14.14 Distrib 5.7.27

Запустите интерактивную утилиту безопасности:

sudo mysql_secure_installation

Войдите в MySQL как root:

sudo mysql -u root -p
# введите пароль root, если задан

Создайте базу данных и пользователя (замените имена):

CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;

Важно: используйте надёжные пароли и, по возможности, выделенный пользователь для приложения.

Шаг 3 — Установка acme.sh и получение сертификата Let’s Encrypt

За HTTPS отвечает TLS-сертификат. Для бесплатного сертификата используем acme.sh — простую оболочку без внешних зависимостей.

Установка acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail you@example.com
source ~/.bashrc
cd ~

Проверка версии:

acme.sh --version
# пример: v2.8.1

Выдача сертификатов RSA и ECDSA (замените example.com на ваш домен):

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA (ECC)
acme.sh --issue --standalone -d example.com --keylength ec-256

Для тестирования используйте флаг --staging.

Каталоги с сертификатами по умолчанию будут в домашней папке пользователя, например /home/username/example.com.

Создайте целевые каталоги для размещения сертификатов (рекомендуется /etc/letsencrypt):

sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Установите сертификаты и настройте перезагрузку Nginx после обновления:

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Все выдаваемые сертификаты acme.sh автоматически обновляются (acme.sh сам настраивает cron/сервис).

После получения сертификатов выйдите из root:

exit

Примечание: если ваш сервер уже использует порт 80, временно остановите веб-сервер или используйте DNS-валидацию.

Шаг 4 — Установка и настройка Nginx

Установите Nginx:

sudo apt install -y nginx

Проверьте версию:

sudo nginx -v
# пример: nginx/1.14.0 (Ubuntu)

Создайте конфигурацию для X‑Cart:

sudo vim /etc/nginx/sites-available/xcart.conf

Вставьте конфигурацию (замените example.com на ваш хост):

server {
  listen 80;
  listen [::]:80;
  root /var/www/xcart;
  index index.php index.html index.htm;
  server_name example.com;
  location @handler {
    index cart.php;
    rewrite ^/sitemap.xml(\?.+)?$ /cart.php?target=sitemap;
    rewrite ^/(.*)$ /cart.php?url=$1 last;
  }
  location / {
    try_files $uri $uri/ @handler;
  }
  location ~ \.php$ {
    try_files $uri @handler;
    fastcgi_split_path_info  ^(.+\.php)(/.+)$;
    fastcgi_index index.php;
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    include fastcgi_params;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }
}

Активируйте конфигурацию:

sudo ln -s /etc/nginx/sites-available/xcart.conf /etc/nginx/sites-enabled/

Проверьте конфигурацию и перезагрузите Nginx:

sudo nginx -t
sudo systemctl reload nginx

Чтобы включить HTTPS, добавьте второй server-блок listen 443 ssl и укажите пути к fullchain.pem и private.key в /etc/letsencrypt/....

Важно: при использовании SSL обязательно настройте 301-редирект с HTTP на HTTPS.

Шаг 5 — Установка X‑Cart

Перейдите в каталог веб-документов и загрузите пакет X‑Cart 5:

cd /var/www/
# загрузите пакет вручную или с помощью wget/curl

Разархивируйте и поместите файлы в /var/www/xcart, затем задайте права:

sudo chown -R www-data:www-data /var/www/xcart
sudo find /var/www/xcart -type d -exec chmod 755 {} \;
sudo find /var/www/xcart -type f -exec chmod 644 {} \;

Откройте в браузере http://example.com/install.php и следуйте мастеру установки.

Шаг 6 — Завершение установки

Примите лицензионное соглашение и продолжите. Создайте учётную запись администратора. Мастер проверит системные требования и настройки базы данных, автоматически настроит директории и построит кэш.

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

Создание аккаунта администратора

Проверка системных требований

Параметры подключения к базе данных

Обновление .htaccess и шаги установки

Установка завершена

После завершения вы увидите ссылки на публичную часть магазина и на панель администратора.


Факт-бокс — ключевые номера и пути

  • Каталог веб-приложения: /var/www/xcart
  • Сертификаты: /etc/letsencrypt/example.com (рекомендуется)
  • PHP-FPM сокет для Ubuntu 18.04: /var/run/php/php7.2-fpm.sock
  • Порты: 80 (HTTP), 443 (HTTPS)

Безопасность и жёсткая настройка

Рекомендации для повышения безопасности:

  • Включите UFW и разрешите только нужные порты: 22, 80, 443.
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
  • Установите fail2ban для защиты SSH и, при необходимости, панели администратора.
  • Отключите удалённый доступ root в MySQL и ограничьте доступ по IP.
  • Регулярно обновляйте систему и бэкапьте базу данных и файлы.
  • Ограничьте права на файловую систему: nginx/www-data должен иметь минимально необходимые права.
  • Используйте безопасные заголовки HTTP (Content-Security-Policy, X-Frame-Options и др.).

Краткая проверка безопасности после установки:

  • HTTPS активен и валиден.
  • Редирект HTTP → HTTPS работает.
  • Доступ к админке защищён сильным паролем и, при возможности, двухфакторной аутентификацией.

Чек-листы по ролям

Администратор системы (SysAdmin):

  • Установил и настроил Ubuntu, обновил пакеты.
  • Настроил PHP-FPM и Nginx.
  • Получил и установил TLS-сертификат.
  • Настроил firewall и fail2ban.

Разработчик / интегратор:

  • Проверил работоспособность PHP-расширений.
  • Настроил конфигурацию приложения.
  • Проверил логи ошибок Nginx и PHP-FPM.

Владелец магазина:

  • Создал администратора в X‑Cart.
  • Провёл базовую проверку фронтенда и корзины.
  • Проверил работу платёжных шлюзов в тестовом режиме.

Критерии приёмки

Система считается готовой к эксплуатации, если выполнены следующие условия:

  • Сайт доступен по HTTPS и сертификат валиден.
  • Админ-панель доступна и подтверждает корректность настроек.
  • База данных подключается и сохраняет данные.
  • Основные страницы (главная, каталог, корзина, checkout) работают без ошибок.
  • Логи не содержат критических ошибок в течение тестового периода.

Типичные проблемы и способы их решения

Проблема: Ошибка 502 Bad Gateway

  • Причина: PHP-FPM не запущен или сокет указан неверно.
  • Решение: проверить systemctl status php7.2-fpm и путь до сокета, согласовать с nginx-конфигом.

Проблема: Сертификат не выдан (acme)

  • Причина: порт 80 занят, или DNS не указывает на сервер.
  • Решение: временно остановить Nginx, использовать DNS-валидацию или обеспечить правильный A/AAAA-запись.

Проблема: Плохие права на файлы

  • Решение: установить владельца www-data и корректные права командой выше.

Советы по миграции и совместимости

  • При переходе с другой версии X‑Cart проверьте совместимость баз данных и расширений.
  • Для MariaDB проверьте, что версия совместима с требованиями X‑Cart.
  • При обновлении PHP заранее протестируйте на стейджинг-окружении.

Короткий анонс для команды (100–200 слов)

Готово руководство по установке X‑Cart 5 на Ubuntu 18.04 с Nginx и MySQL. Включены шаги подготовки сервера, установка PHP и MySQL, получение TLS‑сертификата через acme.sh, настройка Nginx и запуск мастера установки X‑Cart. Добавлены рекомендации по безопасности, чек-листы для ролей и критерии приёмки. Руководство помогает быстро развернуть магазин с корректной конфигурацией и HTTPS. Для тестирования используйте staging-режим Let’s Encrypt и проверяйте работу важных сценариев: регистрация, размещение заказа и работа платёжных шлюзов.


Краткое резюме

  • Подготовьте сервер и установите необходимые пакеты.
  • Установите PHP 7.2+ и расширения.
  • Настройте MySQL и создайте базу данных для X‑Cart.
  • Получите TLS-сертификат (acme.sh) и настройте Nginx.
  • Следуйте мастеру установки X‑Cart и проверьте приёмочные критерии.

Важно: всегда тестируйте на стейджинг-сервере перед развёртыванием в продакшн.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро