Создание копии сайта/перевод на другой домен

 

Смена домена сайту делается в двух случаях:
 
1) Необходимость замены основного домена, переход проекта на другое название.
2) Создание копии сайта на другом домене.
 
В обоих случаях алгоритм действий по замене домена одинаков.
 
Для замены домена нам понадобится:
 
1) SSH доступ на сервер.
2) Пароль/логин/имя для Базы данных(далее - БД).
3) Название старого и нового домена.
4) Панель управления(опционально).
 
 

Важное предупреждение!

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


Подготовка нового домена

Если у Вас предустановлена панель ISPmanager 5, то Вам достаточно создать новый www-домен на который хотите заменить основной в разделе "Домены - www-домены".

На собственном окружении необходимо создать дополнительный виртуальный хост(vhost). Если у Вас нет панели и стоит собственное окружение, то вероятнее всего Вы знаете как это сделать на Вашем сервере. Если не знаете - обратитесь к нам  в техподдержку.

 

Копия базы данных

Замену также нужно провести в базе данных, для этого нужно создать дамп базы в формате .sql и поместить в этой же папке. Не забудьте потом удалить файл дампа из папки сайта в целях безопасности.

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

Вам необходимо войти на сервер по SSH. Если у Вас VPS сервер, то данные доступа по SSH есть у Вас в письме об активации сервера. Если у Вас виртуальный хостинг, то запросите включить SSH доступ через тикет в техподдержку.

После подключения переходим в папку вашего сайта или папку, в которой нужно провести замену:

cd /var/www/testuser/data/www/1old-domain.com/

Делаем дамп:

mysqldump -udb_user -p db_name > db_name.sql

Где db_user - имя пользователя БД

db_name - имя базы данных.

Дамп базы готов.

Копирование файлов

Вы уже находитесь в папке сайта. Поэтому Вам необходимо перейти на уровень выше командой cd ../
 
После этого выполните ls -lah
Это покажет содержимое текущей папки.
 
Стрелками выделены пользователь:группа, которые сменились на root т.к. мы уже сделали следующий шаг(rsync).
 
Выполните эту команду чтобы скопировать все файлы и папки в новую директорию, мы сделали это так:
 
rsync -avPh 1old-domain.com 1new-domain.com
После этого владелец и группа стали root. Выполните следующую команду чтобы назначить верные пользователя и группу:
 
chown -R deepdivedigital:deepdivedigital 1new-domain.com
Теперь копия файлов готова.

Замена ссылок

Перед тем, как приступить к замене ссылок у Вас должна быть копия БД и файлов которые мы уже подготовили. Убедитесь что смотрите в нужную папку прописав команду pwd - она выведет на экран путь где Вы находитесь.

Чтобы найти и заменить все вхождения старого домена в файлах сайта выполните команды:

cd 1new-domain.com
grep -ri 1old-domain.com .

Команда выведет все упоминания на экран. Их может быть слишком много, поэтому давайте сразу заменим старый домен на новый.

grep -ril 1old-domain.com . | xargs sed -i 's,1old-domain.com,1new-domain.com,g'

  • grep — поиск по выражению;
  • l — отобразить найденные файлы списком;
  • i — игнорировать регистр найденных выражений, то есть будут найдены выражения, записанные как строчными, так и прописными буквами или их комбинацией (использовать по необходимости);
  • r — рекурсивный поиск во всех файлах и каталогах, начиная с указанного каталога;
  • «1old-domain.com» — что мы ищем, например имя старого домена вашего сайта, протокол «http://», путь к папке на сервере, и что угодно еще;
  • . — каталог, в котором искать; данная запись означает текущий каталог, где вы сейчас находитесь;
  • |  — символ передачи результата вывода другой программе, то есть, весь вывод команды grep будет передан на вход другой программе, написанной далее;
  • xargs — команда обычно сопровождает предыдущий символ перенаправления вывода, передает ваш список файлов следующей программе;
  • 1new-domain.com — как понятно из названия, производит замену одного выражения на другое, выражения указаны в кавычках;

После выполнения данной команды домен будет заменён как во всех файлах, так и в дампе базы данных, который мы делали ранее.

Теперь Вам необходимо создать новую базу данных и загрузить в неё дамп, либо залить дамп в существующую базу данных(если старый сайт больше не нужен).

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

mysql new_db_name < test_db.sql

Где new_db_name и test_db это имя новой базы и дампа, соответственно.

Если в процессе переноса участвует кириллический домен, то перед заменой ссылок необходимо конвертировать его имя в PunnyCode-кодировку. Это можно сделать с помощью команды idn:

idn домен.рф

Результатом выполнения команды будет имя домена в PunnyCode-кодировке:

xn--d1acufc.xn--p1ai

Используйте его при замене ссылок:

grep -ril xn--d1acufc.xn--p1ai | xargs sed -i 's/xn--d1acufc.xn--p1ai/new_domain.ru/g'

Проверка сайта

Проверьте работу сайта: переходите по разделам, нажимайте на ссылки. Обращайте внимание на отображение картинок, текстов и адреса в строке браузера.

Если вы столкнулись с трудностями — обращайтесь в поддержку. Мы поможем разобраться с проблемой или самостоятельно перенесем ваш сайт на новый домен.

 


 

Копия сайта в панели управления ISPmanager 5

Войдите  в панель управления и перейдите в раздел "Домены - www-домены"("Главное - www-домены" для панелей виртуального хостинга).

Создайте новый домен на который будете клонировать сайт.

На домене old-domain.com у нас установлен wordpress, на на нём и будем тренироваться.

При переходе на домен old-domain.com открывается стандартная страница wordpress.

Скопируем файлы wordpress в директорию нового домена.

Для этого перейдём в папку старого домена, выделим все файлы через SHIFT и сделаем копию.

Если попытаемся перейти на новый домен в браузере, то нас перенаправит на старый домен и откроет старый сайт, потому что необходимо заменить домен в файлах и БД.

Для замены домена запросите SSH доступ у техподдержки если Вы на виртуальном хостинге. Владельцы VPS серверов имеют SSH доступ по умолчанию.

Войдите в панель управления, откройте shell клиент и перейдите в папку сайта. В нашем случае это:

cd /var/www/dtestcomm/data/www/new-domain.com/

Далее делаем дамп базы данных.

mysqldump -udb_user -p db_name > db_name.sql

Где db_user - имя пользователя БД

db_name - имя базы данных.

Дамп базы готов.

Ищем и заменяем старый домен на новый в файлах и дампе базы данных:

grep -ril old-domain.com . | xargs sed -i 's,old-domain.com,new-domain.com,g'

Создаём новую базу данных и загружаем в неё наш дамп:

mysql new_db < test_db.sql

Далее нужно подключить новую базу в конфигурационном файле Вашего нового сайта. Для разных CMS это разный файл, к примеру для wordpress это файл wp-config.php.

После проделанных действий очистите кэш браузера и попробуйте перейти на Ваш новый сайт в браузере, он готов к работе!

Внимание:

Для работы с данным материалом необходимы базовые знания и навыки в работе с BASH и LINUX. Данная статья подходит для всех ОС семейства Linux независимо от набора установленного ПО. После общей статьи Вы найдёте подробный пример создания копии сайта с помощью панели управления ISPmanager 5. 

  • 0 Пользователи считают это полезным
Помог ли вам данный ответ?

Похожие статьи

Кодировка сайта

Если у вашего сайта не отображаются латинские буквы, как в данном примере:То вам необходимо...

Создание и управление доменными именами на VPS и выделенных физических серверах

Мы рады сообщить, что теперь управлением DNS записями для Ваших доменов стало проще и доступнее....

Обновление phpmyadmin до последней версии

Мануал написан для тех, у кого установлена панель управления ISPmanager Lite и операцинная...

Конвертация в utf-8 не поддерживается на стороне сервера

У Вас выскакивает ошибка "Конвертация в UTF-8 не поддерживается на стороне сервера" при...

Ошибка: remote service dnsmgr return error. internal error

При добавлении или редактировании домена в панели управления ISPmanager или на бесплатном днс...

Powered by WHMCompleteSolution