18.97.14.88

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


10.06.2013

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

 

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

 

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

 

Исходим из того что Ваш старый домен “oldsite.com”, а новый “newsite.com”:

 

Экспортируем базу данных в файл:

  • заходим в phpMyAdmin и в левой части выбираем нашу базу данных
  •  
    рис 1
     

  • нажимаем кнопку экспорт в правой верхней части экрана
  •  
    рис 2
     

  • выбираем способ экспорта “Обычный – отображать все возможные настройки” и выбираем все таблицы нажав “Выделить все”
  •  
    рис 3
     

  • по умолчанию имя базы данных будет использоваться имя файл экспорта. Вы можете изменить это, введя нужное имя файла в поле Имя файла. Вы также можете выбрать опцию сжатия (например, “сжатый”)
  •  
    рис 4
     

  • убедитесь, что в Параметрах включено “структура и данные”. в “Параметры создания объектов” включите «Добавить выражение DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT”.
  •  
    рис 5
     

  • нажимайте кнопку “Go” и сохраняйте файл экспорта на диск своего компьютера.
  •  
    рис 6

 

Импортируем базу данных из файла:

  • если база данных, в которую Вы собираетесь импортировать данные, ещё не создана – создайте её.
  •  

  • в левой части выбираем нашу базу данных
  •  
    рис 7
     

  • нажимаем кнопку импорт в правой верхней части экрана
  •  
    рис 8
     

  • выбираем файл импорта нажав кнопку “Обзор”
  •  
    рис 9
     

  • нажимаем кнопку “Go” и ждём завершения импорта данных из файла
  •  
    рис 10
     

 

Переносим файлы

 

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

 

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

 

Изменяем конфигурацию

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

     

    Подготавливаем и запускаем скрипт migrate.php

     

  • скачиваем этот архив содержащий php скрипт migrate.php себе на компьютер, распаковываем.
  •  

  • изменяем файл migrate.php
  •  

    $search_for = 'oldsite.com'; // старый домен
    $replace_with = 'newsite.com'; // новый домен

     

  • загружаем его в корневую веб директорию и запускаем открыв урл http://newsite.com/migrate.php

 

Этот скрипт проведёт замену по всей базе данных, так же он проведёт корректировку JSON данных.

 

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

 

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

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


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