В этой статье рассмотрена смена адреса сайта на WordPress на примере создания тестовой площадки. Для простой смена адреса (домена) шаги, связанные с копированием файлов, надо пропустить.
Иногда встает задача перенести сайт на WordPress на новый домен. Может такое случиться в нескольких случаях:
1. При переходе от бесплатного хостера с его доменом третьего уровня на платный. В таком случае домен типа myblog.domain.info заменяется на myblog.ru.
2. При создании тестовой площадки, которая будет полной копией сайта на какой-то момент, например, для создания сайта test.markimarta.ru. Тестовая версия сайта нужна для проверки новых модулей, доработок кода и других ответственных операций, которые могут привести к поломке рабочего сайта.
3. При смене адреса сайта, например, когда старый домен признан неподходящим для сайта
Состоит движок WordPress из набора текстовых файлов (php, html, css), картинок и таблиц базы данных.
Wordpess при размещении изображений на страницах добавляет к пути адрес сайта, что составляет основную сложность для переноса.
Рассмотрим создание тестовой версии сайта.
1. Создание субдомена и отдельной базы данных. Тестовая версия сайта должна быть изолирована от рабочей. Это ключевое условие, иначе вреда от нее будет больше, чем пользы. Потому нужно для нее создать отдельный субдомен (например, test.markimarta.ru) и отдельную базу данных, например, testdb_markimarta.
2. Нужно скопировать в директорию тестового субдомена все файлы с рабочего домена. Практически все хостеры сейчас предоставляют работу с файлами на сервере через веб-интерфейс, потому копирование можно произвести через интерфейс, аналогичный проводнику Windows. Продвинутые могут воспользоваться SSH-командой копирования:
cp –Rf dir_for_copy destination_dir
-R – копирование рекурсивное
-f - перезапись файлов при наличии файла с таким же именем
3. Сделать резервную копию базы данных рабочего сайта. Это можно сделать через phpMyadmn, который также представляет подавляющее большинство хостеров для управления базами данных, или через SSH ( Создание и восстановление резервной копии базы данных MySQL с помощью SSH)
Создание бэкапа:
mysqldump -uusername -ppassword -hhost databasename > dump_name.sql
4. Теперь подводный камень. В таблицах базы данных содержатся указания на домен рабочего сайта, причем большинство из них - в текстах записей и страницах. Нужно это исправить. Для этого нужно скопировать себе на локальный диск файл резервной копии базы данных, открыть его в текстовом редакторе (имеется ввиду не Word, а нормальный текстовый редактор с поддержкой utf-8) и заменить все места, где встречается запись рабочего домена на адрес тестового (например, заменить https://markimarta.ru на http://test.markimarta.ru). Файл сохранить.
5. Восстановить таблицы из немного отредактированной резервной копии в базу данных тестового сайта. Можно делать через phpMyAdmin или SSH:
Восстановление из бэкапа
mysql -uusername -ppassword -hhost databasename < dump_name.sql
6. Отредактировать файл wp-config.php в папке тестового субдомена, который находится в корне сайта, указав в нем параметры подключения к тестовой базе данных.
7. Изменить (лучше всего через phpMyAdmin) в таблице wpp_options значение поля "siteurl" на адрес тестовой площадки.
Все. Тестовая версия сайта создана.