# Перенос сайта на PHP в новый хостинг-контейнер

Перенос сайта на PHP в новый хостинг-контейнер состоит из следующих этапов:

  • создание и настройка нового хостинг-контейнера;

  • перенос файлов сайта;

  • создание и перенос дампа базы данных;

  • тестирование сайта на новом хостинг-контейнере;

  • запуск сайта в новом хостинг-контейнере.

Запускать сайт для тестирования будем на техническом адресе нового хостинг-контейнера. Технический адрес — это домен вида 'j12345678.myjino.ru'.

# Создание и подготовка нового хостинг-контейнера

Чтобы создать новый хостинг-контейнер в панели управления хостингом (opens new window) нажмите кнопку «Создать новый хостинг».

В созданном хостинг-контейнере подключите услуги «Поддержка PHP», «СУБД MySQL» или «СУБД PostgreSQL» — в зависимости от СУБД, которую используете.

Далее в разделе УправлениеНастройки веб-сервера напротив имени технического домена выберите версию интерпретатора PHP, на которой работает сайт.

В разделе УправлениеУправление MySQL (Управление PostgreSQL) создайте новую базу данных и пользователя для работы сайта.

# Перенос файлов сайта

Чтобы сайт работал, все его файлы нужно размещать в папке domains в подпапке с доменным именем (в нашем случае это подпапка с техническим адресом сайта).

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

# Команда rsync

В новом хостинг-контейнере в разделе УправлениеКонсоль откройте консоль и введите команду:

rsync -av username@host_name:Source Destination

Здесь:

  • username — имя пользователя хостинг-контейнера, на котором расположен сайт и с которого мы будем его «забирать»;

  • host_name — имя хоста, к которому подключаемся;

  • Source — путь к папке с проектом;

  • Destination — путь к папке в новом хостинг-контейнере, в которую будем помещать проект (~/domains/j12345678.myjino.ru).

После установки соединения нужно будет ввести пароль для SSH-подключения к указанному хосту и начнётся копирование данных:

#Output
…
sent 339,834 bytes  received 2,034,714,717 bytes  23,801,807.61 bytes/sec
total size is 2,033,094,800  speedup is 1.00

Примечание

У параметра Source в конце пути должен стоять символ /. Без / скопируются не только файлы сайта, но и папка, в которой они расположены.

Например, можно использовать следующую команду:

rsync -av j12345678@j12345678.myjino.ru:~/domains/example.com ~/domains/j12345678.myjino.ru

Но это не очень удобный способ, так как при этом папка example.com со всем её содержимым скопируется в папку ~/domains/j12345678.myjino.ru. И затем вам нужно будет потратить время на перемещение файлов и папок. Правильный вариант адреса должен выглядеть так: ~/domains/example.com/.

# SFTP

SFTP — безопасный протокол передачи данных.

Для копирования файлов сайта в новый хостинг контейнер:

  • подключитесь к хостинг-контейнеру, на котором расположен сайт, с помощью любого SFTP-клиента (данные для подключения представлены в разделе УправлениеFTP-аккаунты);

  • скопируйте содержимое папки ~/domains/example.com на локальную машину;

  • подключитесь к новому хостинг-контейнеру;

  • разместите файлы сайта в папке с техническим адресом домена (~domains/j12345678.myjino.ru).

# Файловый менеджер

Вам нужно сделать 4 действия:

  • в разделе УправлениеФайловый менеджер выберите папку с файлами проекта и заархивируйте её;

  • скачайте архив на локальную машину;

  • переключитесь в новый хостинг-контейнер;

  • откройте файловый менеджер и загрузите скачанный архив.

# Перенос базы данных

Перенос базы данных состоит из двух этапов: создание дампа базы данных сайта и загрузка этого дампа в новую базу в новом хостинг-контейнере.

Создать дамп базы данных можно двумя способами.

# Создание дампа базы данных с помощью командной строки

При использовании командной строки дамп базы данных создаётся в той директории, где в данный момент находится пользователь. Рекомендуем перед созданием дампа перейти в директорию сайта, чтобы в дальнейшем при копировании файлов сайта можно было сразу же «забрать» дамп базы.

Дамп базы данных создаётся следующей командой:

mysqldump --opt -Q -uLogin -pPassword db_name  > dump_file_name.sql  

Здесь:

  • Login — имя пользователя базы;

  • Password — пароль пользователя для подключения к базе;

  • db_name — имя базы данных, для которой создаёте дамп;

  • dump_file_name — имя файла, который будет содержать дамп базы данных.

# Создание дампа базы данных с помощью phpMyAdmin

phpMyAdmin — это веб-интерфейс для работы с базами данных.

Чтобы войти в панель работы с phpMyAdmin, зайдите в раздел УправлениеУправление MySQL и нажмите кнопку Войти в разделе phpMyAdmin.

В phpMyAdmin в левой части окна выберите базу, которую импортировать, перейдите на вкладку Экспорт и нажмите Вперёд.

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

Загрузить дамп базы данных можно теми же двумя способами.

# Загрузка дампа базы данных с помощью командной строки

Перенесите файл с дампом базы данных в новый хостинг-контейнер, как обычный файл.

После этого подключитесь к хостинг-контейнеру по SSH или через раздел УправлениеКонсоль, перейдите в директорию, где находится загруженный дамп базы, и выполните команду:

mysqldump --opt -Q -uLogin -pPassword db_name  < dump_file_name.sql  

Здесь:

  • Login — имя пользователя базы, в которую загружается дамп;

  • Password — пароль пользователя для подключения к базе;

  • db_name — имя базы, в которую загружается дамп;

  • dump_file_name — имя загружаемого файла, который содержит дамп базы данных.

Имя базы, имя пользователя и пароль к ней — это параметры, которые задаются при подготовке хостинг-контейнера.

# Загрузка дампа базы данных с помощью phpMyAdmin

Перейдите в раздел УправлениеУправление MySQL и зайдите в phpMyAdmin. Выберите созданную для приложения базу, перейдите на вкладку «Импорт» и выберите файл с дампом базы данных, который вы создали на предыдущем шаге.

После завершения импорта вы должны увидеть сообщение «Импорт успешно завершён, выполнено N запросов (db_name)»

# Предварительная настройка сайта

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

# Тестирование сайта на новом хостинг-контейнере

После того как все файлы сайта будут перенесены в папку ~/domains/j12345678.myjino.ru, а дамп базы данных загружен в новую базу, можно проверять правильность работы сайта.

В адресной строке вашего браузера введите технический адрес нового хостинг-контейнера. В открывшемся окне должна появиться стартовая страница перенесённого сайта.

# Запуск сайта

Чтобы запустить сайт в «боевом» режиме, к хостинг-контейнеру должно быть привязано доменное имя сайта, все файлы сайта должны размещаться в папке с именем сайта, а база данных должна быть максимально свежей.

Запуск сайта в этом случае состоит из следующих этапов:

  • перенос доменного имени;

  • перемещение файлов сайта;

  • последнее обновление базы данных.

# Перенос доменного имени

В разделе ДоменыУправление доменами выберите доменное имя сайта и перейдите в Основные настройки. Далее в окне «Привязка домена» выберите новый хостинг-контейнер. Все необходимые DNS-записи будут изменены автоматически.

# Перемещение файлов сайта

После привязки домена к хостинг-контейнеру в папке domains появится подпапка с доменным именем.

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

# Обновление базы данных

Чтобы время бездействия сайта было минимальным, последней переносим базу данных. Как это сделать, описано в пункте «Перенос базы данных».

Готово — ваш сайт перенесён в новый хостинг-контейнер.