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

Основная цель
Пошаговая инструкция по развертыванию 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 — Завершение установки
Примите лицензионное соглашение и продолжите. Создайте учётную запись администратора. Мастер проверит системные требования и настройки базы данных, автоматически настроит директории и построит кэш.






После завершения вы увидите ссылки на публичную часть магазина и на панель администратора.
Факт-бокс — ключевые номера и пути
- Каталог веб-приложения: /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 и проверьте приёмочные критерии.
Важно: всегда тестируйте на стейджинг-сервере перед развёртыванием в продакшн.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента