Перенос сайта на wordpress без заморочек
Wordpress

Перенос сайта на wordpress без заморочек

Перенос сайта на WP движке некоторым людям представляется сложной задачей. Советы в Кодексе, будучи, вроде бы, всеобъемлющими, описывают слишком много вариантов решения этой задачи, и нигде при этом не даётся простого алгоритма всего процесса целиком.

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

Чтобы сэкономить ваше время, я опубликую здесь пошаговую инструкцию и расскажу о трёх наиболее распространённых ситуациях:

  • Перенос сайта с поддомена в корневой каталог (например, в том случае, когда вы использовали поддомен для внесения изменений в сайт, не затрагивая сам веб-сайт, который находится в корневом каталоге);
  • Перенос сайта с локалки на удалёнку;
  • Перенос сайта с одного домена или хостинга на другой.

Прежде всего

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

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

Вы можете забэкапить базу данных используя один из этих инструментов:

  • phpMyAdmin;
  • Sequel Pro для OS X;
  • Terminal commands;
  • десктоптный клиент MySQL;
  • плагин для бэкапа, например, WP-DB-Backup, который отправит вам копию вашей базы данных на имэйл или загрузит на ваш ПК.

В этой статье я расскажу, как забэкапить базу данных, используя phpMyAdmin, так как он предоставляется почти всеми хостерами и имеет относительно простой в использовании интерфейс.

Если я собираюсь редактировать базу данных (а это необходимо делать при загрузке сайта на сервер или при переносе его с хостинга на хостинг или с сервера на сервер), я начинаю с создания копии базы данных и добавления префикса “old” к названию. Это резервное копирование, а редактировать я буду оригинальную базу данных.

Перенос сайта с поддомена в корневой каталог

Это, безусловно, самый простой из трёх переносов, о которых я собираюсь рассказать, потому что на самом-то деле вам ничего переносить и не нужно – или почти ничего. Этот метод подойдёт для стандартной установки WP и для большинства фрэймворков, или если вы используете родительскую или дочернюю структуру темы.

Внимание! Этот метод не подойдёт для:

  • мультисайтовой версии;
  • сайтов, использующих в качестве фрэймворка Genesis (или же, если у вас этот метод сработал, пожалуйста, отпишитесь в комментариях, ибо сам я не пробовал).

Самое замечательное в этом методе то, что он займёт у вас всего 3-10 минут в зависимости от ваших настроек.

1. Удалите существующий сайт

Если сайт находится в корневом каталоге, удалите его. Это может быть другой WP или обычный сайт.

Если это сайт WP, забэкапьте его как описано выше, а затем удалите все WP файлы в корне.

  • Если у вас есть доступ к Softaculous или другому подобному сервису установки программ через панель управления хостингом, используйте её для удаления WP.
  • Если же нет, используйте phpMyAdmin, чтобы удалить базу данных существующего сайта. В следующем разделе я детально расскажу, как это сделать.
  • После удаления базы данных удалите все WP файлы. Обычно это все папки и файлы, начинающиеся с wp-.
  • Внимание! не удаляйте сайт, не сделав его резервную копию!

2. Отключите постоянные ссылки

Отключите ЧПУ в разделе “Постоянные ссылки”, который найдёте в разделе “Настройки”. Выберите опцию “по умолчанию” и сохраните изменения.

permanent-url

3. Смените адрес сайта

В разделе “Настройки” -> “Основные”  измените адрес вашего сайта, но не адрес WordPress. Например, если вы работали с сайтом example.com/development, измените его следующим образом:

  • WP адрес (URL): http://example.com/development
  • Адрес сайта (URL): http://example.com

Сохраните всё, нажав на кнопку “Сохранить изменения” и переходите к следующему пункту.

4. Скопируйте и отредактируйте два файла

Используя FTP/SFTP или файловый менеджер cPanel, скопируйте (не перемещайте) из каталога WP в корневой каталог следующие файлы:

  • index.php
  • .htaccess, если такой имеется. Если файла .htaccess нет (а отключение постоянных ссылок должно привести к тому, что у вас его не будет), не беспокойтесь.

Отредактируйте файл index.php, который вы переместили. Это можно сделать следующим образом:

  • редактировать его в том месте, куда переместили, используя FTP/SFTP или файловый менеджер cPanel;
  • загрузить его из подкаталога, отредактировать и затем загрузить его в корневой каталог вместо того, чтобы создавать копию.

Изменения, которые вам нужно внести, очень простые и касаются только одной строчки в конце файла. Вам просто нужно изменить следующую строку:

require (‘./wp-blog-header.php)

на это:

require (‘./subdirectoryname/wp-blog-header.php)

Поэтому если вы работали с example.com/development, просто замените строку на:

require (‘./development/wp-blog-header.php)

Сохраните новый файл index.php.

5. Снова включите постоянные ссылки и проверьте

Вернитесь в админку WP, включите постоянные ссылки и настройте сайт так, как вам нужно.

Введите адрес вашего сайта в браузере, и вы увидите сайт, который располагается в подпапке, но будет показываться основной url, а не адрес директории. И всё.

Загрузка WP сайта с локалки на удалёнку

Это один из наиболее часто встречаемых переносов WP сайтов. Если вы работаете над развитием сайта локально и вам нужно его запустить или просто показать клиенту или одному из ваших разработчиков, вам нужно будет загрузить WP сайт на сервер. Этот процесс сложнее, чем перенос сайта из подкаталога в корневой каталог, и состоит он из трёх компонентов:

  • Сам WP – вам нужно будет установить его по новому адресу;
  • База данных, которую вы можете перенести, используя phpMyAdmin;
  • Файлы вашей темы, загрузки и плагины.

1. Отключите постоянные ссылки

Отключите постоянные ссылки в окне “Постоянные ссылки”, которое вы найдёте в меню “Настройки”. Выберите вариант “По умолчанию” и нажмите кнопку “Сохранить изменения”.

2. Забэкапьте базу данных

Создайте копию базы данных и дайте ей новое имя (например, добавьте в адресе слово “old”).

3. Установите WorldPress на сервере и загружайте контент

Любым удобным способом установите WP на сервер, на котором хотите разместить сайт.

Используя FTP или SFTP, скопируйте файлы из вашей локальной папки “wp-content” в удалённую папку “wp-content”, используя такую же систему папок как и в вашей локальной установке.

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

4. Отредактируйте базу данных

Не нужно просто открывать исходный файл базы данных и редактировать его. Содержание базы данных, разбитое по таблицам, будет повреждено, если редактировать её напрямую. Лучше использовать инструменты работающие с таблицами, например, Search-Replace-DB (спасибо Андрею Савченко!). Замените старые локальные урлы на новые урлы сервера.

Например, если ваша локальная ссылка имеет вид http://localhost/example, то вам нужно будет заменить её на http://example.com.

Использование команды “заменить” ускорит этот процесс – копий может быть тысячи. Сохраните вашу новую базу данных.

5. Удалите существующую базу данных на сервере

Примечание: Этот шаг нужно выполнять только в том случае, если вы для установки WP используете скрипты типа Softaculous или Fantastico, так как они автоматически создают новую базу данных. Если же вы установили WP вручную, то этот пункт можно пропустить.

В phpMyAdmin удалите базу данных, которая была установлена на удалённом сайте, когда вы установили WP:

  • Выберите ту базу данных, с которой вы работаете
  • Перейдите во вкладку “Структура”
  • Под списком таблиц нажмите на кнопку “Проверить всё”
  • В выпадающем меню, в котором написано “Применить к выбранному”, нажмите “Удалить”:

phpmyadmin

  • Вы увидите сообщение, повторно спрашивающее, точно ли удалять все таблицы. Жмите “Да”.
  • Наконец вы увидите сообщение о том, что ваш запрос выполнен:

drop-bd

 

6. Загрузите новую базу данных

Не выходя из phpMyAdmin, загрузите базу данных, которую вы отредактировали:

  • Кликните по вкладке “Импорт”
  • Нажмите кнопку “Выбрать файл”
  • Выберите базу данных, которую вы сохранили в 4 пункте, нажмите “Выбрать” или “Ок”
  • Через какое-то время (всё зависит от размера вашей базы данных), вы увидите сообщение о том, что загрузка была успешно завершена:

import-bd

7. Очистите кэш браузера

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

8. Войдите в админку WP и обновите постоянные ссылки

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

Зайдите в “Постоянные ссылки” и снова их включите.

Всё готово!

Перенос WP сайта с хостинга на хостинг

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

Проделайте весь описанный выше процесс, внеся следующие изменения во 2 пункт:

2. Скачайте и забэкапьте старую базу данных и файлы.

В phpMyAdmin старого сайта выберите нужную базу данных и нажмите на вкладку “Экспорт”. Скачайте базу данных, нажав на кнопку “Ок”. База данных скачается на ваш компьютер.

Переместите базу данных из папки загрузок в рабочую папку и создайте её копию. С этой копией базы данных вы будете выполнять действия 4 пункта.

Используя FTP или SFTP, скачайте содержимое папки wp-content вашего старого сайта. Вам нужно будет загрузить это в новый сайт в 3 пункте.

Теперь возвращайтесь к исходному процессу.

Вывод

Процесс переноса WP не должен вызвать заруднений. Если все пункты будут выполнены верно и в правильной последовательности, то ваши данные будут в безопасности и сайт заработает в своей новой локации. Важно помнить следующее:

  • Всегда создавайте резервную копию сайта перед началом работы.
  • Если вы переносите сайт WP внутри домена, вам не нужно будет переносить всё, просто внести некоторые изменения в настройки и перенести и отредактировать файл index.php.
  • Перемещая базу данных в новое место, убедитесь, что вы загружаете ту версию, в которой вы прописали новый урл, а не резервную копию со старым урлом. Иначе, самое незначительное, что может случиться – это ваши внутренние ссылки станут битыми и, возможно, вы увидите белый экран смерти, когда попытаетесь установить сайт.

Если вы допустите ошибку на каком-либо из этапов, отмените это действие и начните все этапы работы с резервной копией. Вы ведь сделали резервную копию, не так ли? =)

Источники

Кодекс WP включает в себя информацию, которая поможет вам применить этот метод независимо от установок вашего хостинга:

  • Перенос WP
  • Предоставление Вордпрессу собственной директории
  • Установка WP

Для помощи в работе с phpMyAdmin, загляните в документацию phpMyAdmin.

Существуют также и плагины, которые помогут вам перенести WP, если вы не хотите делать это вручную. Я сам все их не проверял, поэтому не могу ручаться за надёжность и простоту их использования. А если вы решили каким-то из этих плагинов воспользоваться, то делайте это осторожно.

  • Перенос WP
  • Плагин Backup and Move
  • WP-DB-Backup

Оригинал статьи: http://wp.smashingmagazine.com/2013/04/08/moving-wordpress-website/

2 комментария
  1. Роман 7 лет назад
    Ответить

    Один нюанс возник при переезде с поддомена на основной домен: перестала отображаться админ-панель (черная плашка в самом верху экрана), с которой можно сразу войти в админку, редактировать запись, страницу, на которой находишься и т.п. Очень удобно для меня. Как ее вернуть, если домени и wp в разных директориях получается расположены?

    • d9d9_Sun 7 лет назад
      Ответить

      Один из вариантов почему пропала панель – в файле functions.php написан код, который её скрывает.
      Не совсем понял про разное расположение домена и wp. Можете написать в личные сообщения в вк или фб, более подробно разберёмся в Вашем вопросе.

Оставить комментарий

Ваш email не будет опубликован.

Ещё статьи по теме
Pin It on Pinterest