В работу поступила задача на перенос сайта toy69.ru с хостинга Reg.ru на VPS (облачный сервер) Reg.ru. Ранее сайт был размещён на виртуальном сервере FirstVDS (в тексте иногда упоминается как “старый сервер”) под управлением CentOS.

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

Содержание:

<aside> 💡 Пошаговая инструкция по переносу сайта на VDS на примере данного кейса (Ubuntu, OpenCart, Sphinx) описана тут:

toy69.ru - перенос сайта на VPS и настройка Sphinx

</aside>


🧱 Подготовка нового сервера

В качестве сервера был выбран Ubuntu 22.04, а так же подключен ISPManager 6. За основу можно выбрать любую Linux-систему, например Debian или Cent OS.

Для подготовки сервера к переносу сайта были выполнены следующие шаги:

  1. Был развёрнут MySQL версии 5.3, схожей с прошлым VDS в Docker-контейнере. В качестве сервера для БД использовалась MariaDB версии 10.3.38. На VPS Reg.ru желательно заменить стандартный сервер на сервер в Docker по той причине, что стандартный сервер MySQL невозможно восстановить после любых правок конфигурации сервера БД, например, изменения кодировки — см. Невозможность обновления конфигурации.
  2. Из-за некорректной кодировки таблиц (см. — Некорректная кодировка) БД с хостинга была выгружена в виде строк-запросов, так как в таком виде таблицы не имеют установленной кодировки. Для того чтобы импортировать такой объём запросов, необходимо временно на период импорта увеличить тайм-аут Nginx. Импорт в виде запросов может помочь, если таблицы имеют разные или несовпадающие с сервером кодировки, тем самым импортируемый текст будет в формате UTF-8.
  3. Выгружены почтовые ящики и вся почта со старого сервера и с хостинга в виде текстовых файлов. Как правило, почта располагается по пути /var/www/data/email/<mailbox_name>. На новом сервере созданы идентичные почтовые ящики, после чего содержимое архивов почты помещено внутрь них.
  4. Установлены необходимые библиотеки и зависимости. По умолчанию на сервере отсутствовало то, что необходимо для корректной работы OpenCart и модулей сайта (напр., модуль оптимизации изображений). На сервер были установлены следующие библиотеки:

<aside> ✅ Библиотеки для корректного соединения Sphinx с базой данных: libmysqlclient-dev, libpq-dev, unixodbc-dev, libmariadb-client-lgpl-dev-compat Библиотека для работы с cURL: php-curl - необходима для корректной работы панели администратора OpenCart Библиотека для работы с изображениями: php-gd

</aside>