54.224.89.34

WordPress — перенос на другой домен


10.06.2013

 

сегодня столкнулся с задачей — перенести готовый сайт (вот этот, который Вы сейчас читаете) на WordPress с «development» домена в «production» домен.

задача на первый раз взгляд банальная, и я не ожидал что возникнут трудности — но, оказалось что в случае с WordPress, это не так просто как кажется.

в интернете достаточно много советов которые сводятся к «найди и замени», но это подойдёт к «простым» проектам. в случае если у Вас WordPress напичкан виджетами, шоткодами и т.п. «найди и замени» не достаточно т.к. большинство их хранит данные в JSON формате в базе данных. полазив в просторах интернета я так и не нашёл готового решения для таких случаев, но нашёл «почти готовое» на сайте http://davidcoveney.com/ — собрав там всё в кучу, предлагаю вашему вниманию.

итак, по пунктам переносим — делаю инструкцию сворачиваемой что бы Вам было удобнее перейти к нужному Вам пункту. исходим из того что Ваш старый домен «oldsite.com», а новый «newsite.com»:

[toggle_content title=»экспортируем базу данных в файл» class=»toggle box box_white»]
[check_list]

  • заходим в phpMyAdmin и в левой части выбираем нашу базу данных
    рис 1
  • нажимаем кнопку экспорт в правой верхней части экрана
    рис 2
  • выбираем способ экспорта «Обычный — отображать все возможные настройки» и выбираем все таблицы нажав «Выделить все»
    рис 3
  • по умолчанию имя базы данных будет использоваться имя файл экспорта. Вы можете изменить это, введя нужное имя файла в поле Имя файла. Вы также можете выбрать опцию сжатия (например, «сжатый»)
    рис 4
  • убедитесь, что в Параметрах включено «структура и данные». в «Параметры создания объектов» включите «Добавить выражение DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT».
    рис 5
  • нажимайте кнопку «ок» и сохраняйте файл экспорта на диск своего компьютера.
    рис 6

[/check_list]
[/toggle_content]
[toggle_content title=»импортируем базу данных из файла» class=»toggle box box_white»]
[check_list]

  • если база данных в которую Вы собираетесь импортировать данные ещё не создана — создайте её.
  • в левой части выбираем нашу базу данных
    рис 7
  • нажимаем кнопку импорт в правой верхней части экрана
    рис 8
  • выбираем файл импорта нажав кнопку «Обзор»
    рис 9
  • нажимаем кнопку «ОК» и ждём завершения импорта данных из файла
    рис 10

[/check_list]
[/toggle_content]
[toggle_content title=»переносим файлы» class=»toggle box box_whitee»]

даже растерялся как описать процесс переноса файлов — множество ftp менеджеров, различные условия на хостингах. действие по сути простое: со старого хостинга (домена) берём все файлы и папки корневой веб директории и копируем на локальный компьютер; с локального компьютера опять же один в один копируем их в корневую веб директорию нового хостинга (домена).

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

[/toggle_content]
[toggle_content title=»изменяем конфигурацию» class=»toggle box box_white»]
[check_list]

  • файл wp-config.php — изменяем параметры доступа к базе данных
    [code]/** Имя базы данных для WordPress */
    define(‘DB_NAME’, ‘new_db’);
    /** Имя пользователя MySQL */
    define(‘DB_USER’, ‘new_user’);
    /** Пароль к базе данных MySQL */
    define(‘DB_PASSWORD’, ‘new_password’);[/code]

[/check_list]
[/toggle_content]
[toggle_content title=»подготавливаем и запускаем скрипт migrate.php» class=»toggle box box_white»]
[check_list]

  • скачиваем этот архив содержащий php скрипт migrate.php себе на компьютер, распаковываем.
  • изменяем файл migrate.php
    [code]$search_for = ‘oldsite.com’; // старый домен
    $replace_with = ‘newsite.com’; // новый домен
    [/code]
  • загружаем его в корневую веб директорию и запускаем открыв урл http://newsite.com/migrate.php

[/check_list]
этот скрипт проведёт замену по всей базе данных, так же он проведёт корректировку JSON данных.
[/toggle_content]
вот в общем-то и всё. отличие этой инструкции от тысяч других в интернете — это как раз скрипт migrate.php который позволит Вам корректно заменить все данные в базе (включая JSON).

есть вопросы или возникли проблемы с переносом WordPress — спрашивайте, постараюсь ответить.

Алексеев Алексей Алексеев Алексей


"C нами Вы №1!"