Сегодня речь пойдет о сравнительно простом пошаговом руководстве для начинающих, которое поможет вам перенести ваш сайт на базе WordPress на новый хостинг или новую БД со сменой адресов. Если вы сменили провайдера или просто хотите перенести блог на новый адрес / домен / поддомен, то вам пригодится и это пошаговое руководство, и видео-инструкция, которая в нем есть.
Если вы разработчик, то сразу скажу, что в нашем руководстве описаны лишь основные вехи процесса, но для тех, кто в первый раз самостоятельно переносит свой сайт на новый сервер или хостинг, этого вполне будет достаточно.

  • Примерное время выполнения: 15-20 минут.
  • Сложность: от начинающего до пользователя среднего уровня
  • Что нам понадобится: хостинг с PHP (5.2+), MySQL Database и FTP-доступ
  • Требуемое ПО: FTP-клиент, текстовый редактор, PHPMyAdmin

С чего начать: что надо знать перед началом работы

WordPress — не такой простой движок и ПО, как может показаться на первый взгляд. И потому для обычных пользователей без развитого опыта в качестве программиста-разработчика процесс кодинга или редактирования данного движка может быть непростой задачей. Поэтому, чтобы вы окончательно не запутались в терминологии с первых же строк этой пошаговой инструкции, сделаю для вас краткое вступление. А потом постепенно перейдем к "разбору полетов" и тому, как правильно перенести вашу существующую установку WordPress к новому пункту назначения.

Есть различные подходы к структуризации компонетов WordPress, но в нашем случае достаточно будет следующего разделения компонентов на 2 основных группы:

  • Файлы на вашем веб-сайте (php, css, html, javascript и др.)
  • База данных (БД) (в ней хранится вся информация по файлам и работе с ними)

Файлы

Чтобы ваш WordPress работал, надо, чтобы Файлы формировали "облик" и структуру вашего сайта, а БД при этом контролировала всю работу Файлов. Все файлы в составе сайта написаны преимущественно с использованием языка программирования. В случае с нашим движком речь идет о PHP. Чтобы увидеть файлы, из которых состоит существующая установка WordPress, вам надо залогиниться на ваш хостинг или подключиться к вашему серверу по FTP. Создать FTP-подключение к вашему сайту вы можете при помощи специального ПО, например: WinSCP, Firebug или FileZilla. Необходимые настройки для подключения по FTP-протоколу вам должен предоставить ваш хостинг-провайдер. Для того, чтобы перенести файлы с одного сервера на другой, нужно просто переместить их так же, как вы перемещаете файлы на локальном диске, перетаскивая их на пиктограмму другого диска, папки или подраздела. Разница заключается лишь в том, что в данном случае эта операция выполняется при помощи FTP-клиента: специальной программы, которая подключена к серверу вашего хостинг-провайдера.

База данных (MySQL)

Если с файлами в рамках WordPress справиться можно достаточно легко, то вот управление и редактирование БД в вашем WP — дело далеко не простое. Для новичков поясню: вы не можете просто взять и переместить базу, перетащив ее "мышкой", как вы это делали с файлами и папками. У БД есть свой протокол, к которому она жестко привязана. Информация в рамках установленного WordPress хранится внутри отдельной БД MySQL. Ее предоставляет ваш хостер или провайдер серверов. Чтобы получить к ней доступ, необходимо подключаться, указывая пароль, логин пользователя и имя хоста. Вместо того, чтобы вникать в код и особенности языка программирования, на котором создана ваша БД, вам понадобится PHPMyAdmin: это надстройка, управляющая работой вашего сайта, которая еще известна как "Панель управления хостингом". PHPMyAdmin создает интерфейс, при помощи которого пользователь может работать с базой данных. Нам в процессе перемещения сайта понадобится всего несколько основных инструментов из этой Панели, а большую часть возможностей ее мы и вовсе проигнорируем (чтобы вы, копаясь в тонкостях и расширенных возможностях, ничего не "напортачили").

Далее рассмотрим пример перемещения сайта на новый поддмен (поддмен носит имя "sandbox.devnot.es").

Предупреждение новичкам

Стоит сказать, что правка вашей БД MySQL может быть крайне рискованным занятием, если вы недостаточно внимательны и осторожны: даже более опытные пользователи в результате одной неверной операции могли "поломать" всю БД и непоправимым образом повредить не только новой установке БД, но и испортить работу существующей БД и сайта, который она обслуживает. Поэтому если это ваш первый опыт в миграции сайта, настоятельно не рекомендую вам тренироваться на стороннем проекте или сайте клиента: лучше создайте для этой цели простенький тестовый сайт. Тем не менее, метод проб и ошибок эффективен, так что учитесь и пытайтесь перенести сайт сами; но только делайте это на примере тестового сайта и делайте это аккуратно!

Видео-инструкция

Это видео послужит пошаговым руководством для осуществления всей требуемой процедуры (правда, всё равно почитайте текстовую инструкцию после просмотра видео, там есть некоторые нюансы, которые важно знать новичку в деле "миграции" сайтов). А пока выберите режим просмотра видео HD и разверните на весь экран, чтобы ничего не пропустить: наиболее важные шаги специально засняты с увеличением части страницы в момент редактирования или других операций с сайтом.

Примечание: на этапе, когда будете менять URL-адреса в БД, пользуйтесь инструментом группового редактирования адресов путем поиска и замены, а не стандартным текстовым редактором: это поможет избежать проблем. Найти его можно в свободном доступе на сайте InterconnectIT.

Шаг 1: Файловая система

Прежде чем мы начнем переносить наш сайт на базе WordPress, нужно сделать пару процедур с файловой системой, с которой работает наш сайт. Дело в том, что на WordPress используется определенный тип имен: символы "wp" обозначают, что этот файл нужен для корректной работы установленного WordPress. Однако есть несколько исключений из этого общего правила — это следующие файлы:

  • .htaccess
  • index.php
  • xmlrpc.php

Помимо вышеуказанных файлов, есть несколько опциональных файлов, которые входят в пакет WordPress и при этом их наличие не является обязательным условием для работы самого движка; но эти файлы несут информационную функцию. А потому надо сохранить и эти файлы:

  • readme.html
  • license
  • favicon.ico (если этот файл у вас есть)

Не забудьте эти файлы; а все остальные, у которых в имени есть часть "wp", надо перенести в обязательном порядке по умолчанию. Вам понадобятся все три папки с файлами и их содержимое ("wp-admin", "wp-content" и "wp-includes"), а также те файлы, о которых речь шла ранее. Полный перечень насчитывает 31 файл:
Если вы переносите файлы в рамках одного и того же хоста или сервера, нет необходимости в локальном бэкапе: вы всегда можете за пару секунд перенести фалы обратно простым копированием.

  • wp-admin/
  • wp-content/
  • wp-includes/
  • .htaccess
  • favicon.ico
  • readme.html
  • index.php
  • license.txt
  • wp-load.php
  • wp-login.php
  • wp-links-opml.php
  • wp-config.php
  • wp-feed.php
  • wp-pass.php
  • wp-blog-header.php
  • wp-rss.php
  • wp-atom.php
  • wp-mail.php
  • wp-config-sample.php
  • wp-settings.php
  • wp-activate.php
  • wp-cron.php
  • wp-comments-post.php
  • wp-rss2.php
  • wp-commentsrss2.php
  • wp-register.php
  • wp-app.php
  • wp-signup.php
  • wp-trackback.php
  • wp-rdf.php
  • xmlrpc.php

Теперь, когда мы знаем, какие именно файлы нам обязательно понадобятся, все их можно сохранить на локальном компьютере. У нас получится локальный бэкап на тот случай, если мы совсем запутаемся и "наломаем дров" с новой установкой и переносом. После того, как вы сохраните файлы на локальный диск, можете приступать к переносу файлов на новый сервер или к другому провайдеру хостинга. Не переживайте: уведомление о том, что возникла ошибка php, вам не придет; появится сообщение, что нельзя установить подключение к БД до тех пор, пока вы не завершите перемещение файлов.

Шаг 2: БД MySQL

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

Итак, перед вами — задача по смене сервера или хостинг-провайдера либо же вы просто переносите блог или сайт на новый адрес. Помимо переноса самих файлов, вам надо также перенести БД. В БД хранятся все пути взаимодействия с контентом и файлами на сайте. Вместо автоматического экспорта БД средствами WordPress, проведём все процедуры вручную: для эьлшл нам понадобится интерфейс PHPMyAdmin. У основных хостеров есть свои надстройки над этой панелью, такие как cpanel, plesk или другие варианты.

Зайдя в панель, переходим к выбору БД WordPress. Чтобы правильно выбрать БД, надо свериться с информацией из файла wp-config.php: в нем найдем пункт "DB_NAME" с именем нашей базы данных (В приведенном примере имя БД — "devnotes_wp"). Кликнем на этом имени и после открытия нового окна справа вверху вам надо нажать на кнопку "Export" ("Экспорт"). Потом выбираете опцию "Save as file" ("Сохранить как файл") и не забудьте снять сжатие, а затем нажать на "Go" ("Начать"). Запустится процесс скачивания файла [DB_NAME].sql. Этот файл вам надо будет залить на новый сервер или хостинг.

Не архивируйте файл sql, поскольку его надо будет редактировать на следующем этапе работы (о котором речь пойдет далее).

Шаг 3: меняем адреса

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

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

Здесь для редактирования воспользуйтесь текстовым редактором с опцией поиска и замены определенного фрагмента. Для таких ОС, как Windows and Linux, подойдет бесплатный редактор NotePad++. Еще есть неплохая программа для этих целей под названием Sublime 2. Отыщите все фрагменты кода, содержащие прежний веб-адрес, и замените их на новый адрес. В процессе вставки и автозамены будьте внимательны, чтобы не вставить лишние символы в новые адреса (например, дублирование "слэшей").

Примечание: простой поиск и замена выделенного фрагмента хорошо работает в большинстве случаев; однако сегодня в БД может храниться определенная часть ссылок и информации, которую так просто автозаменой не исправишь. Чтобы ничего там не "поломать", воспользуйтесь опцией поиска и замены с чувствительностью к регистру и сериям (в англоязычном интерфейсе — "serialize-data sensitive"), В частности, инструмент для такого поиска и замены можно скачать с сайта InterconnectIT.

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

Шаг 4: восстанавливаем БД

Часто бывает так, что вам надо создать новую БД при переносе на новый хост. Кроме того, возможно потребуется добавить новое имя пользователя и пароль к нему для работы с новой БД.

После перенесения и смены URL надо подключить БД так, чтобы она "опознавала" сайт на новом месте. Для этого вам надо залогиниться в новое местоположение сайта через PHPMyAdmin.

Зайдя на перенесенный сайт при помощи PHPMyAdmin, выберите новую БД, кликнув на ее названии слева, а затем нажав на "Импорт" справа. Убедитесь, что вы выполняете операции именно в таком порядке, чтобы на следующем шаге не получить сообщение об ошибке. Загрузите сохраненный ранее скачанный файл с расширением .sql. Если всё сделано верно, вы увидите подтверждение того, что ваша БД была загружена.

Шаг 5: возвращаем WordPress "к жизни"

Последним шагом в нашей процедуре перемещения сайта станет прописывание нового местоположения сайта на базе WordPress и подключение БД, чтобы нам не выдавалась ошибка подключения к БД: "Database Error". Если вы всё ещё видите данную ошибку, то самое время отредактировать содержимое файла wp-config.php. Там надо обновить настройки БД и указать новые, согласно внесенным изменениям в БД MySQL.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'mysite_wp');

/** MySQL database username */
define('DB_USER', 'wordpressDB_user');

/** MySQL database password */
define('DB_PASSWORD', 'secretP@ssword');

/** MySQL hostname */
define('DB_HOST', 'localhost');

Вот что из этого вам надо отредактировать:

  • DB_NAME — имя новой БД, созданной для WordPress
  • DB_USER — имя пользователя, у которого есть права доступа к БД
  • DB_PASSWORD — пароль для вышеуказанного пользователя
  • DB_HOST — имя хоста для БД. Обычно здесь прописывают "localhost" (если только нет каких-то специфических настроек или требований со стороны самого провайдера).

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

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

Ура, вы всё сделали!

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

Источник: Migrating WordPress Across Hosts, Servers And URLs

Вам понравился материал?

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

17 комментариев

сначала новые
по рейтингу сначала новые по хронологии

Подскажите пожалуйста есть ли возможность переноса сайта с настройками темы? Т.к. после переноса на хостинг у темы становятся дефолтные настройки.

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

Александр

А я не заморачивался даже. Когда воспользовался услугами wishhost.net. Тех подтержка сразу спросила меня нужна ли мне помощь в переезде. Я согласился. Дал им логин и пароль от старого фостера и вуаля через 20 минут сайт весь готов.

спасибо за вашу инструкцию, как раз перехожу к хостеру Handyhost, теперь точно знаю как.

При переносе сайта с локального хостинга на хостинг провайдера после того, как экспортировал БД, в текстовом редакторе заменил все записи 127.0.0.1 на домен провайдера. Сайт практически заработал, НО нет ни одной картинки. Кто может подсказать что еще стоит поменять? Спасибо!

Инструкция корректная, все верно... Но я искал информацию по переносам настроек тем, т.к. "крупные" темы после смены домена дефолтят все настройки... Конечно заново все настроить не долго, но все-же лень :)

Все сделал как по инструкции. Сайт работает, правильно ссылки отображаются. Но не могу зайти в админку, просто белое полотно и все. В чем может быть проблема?

Здравтсвуйте!
А у меня после переноса происходит редирект на старый сайт при входе в админку с сайта.
Пробовал удалять все таблицы с бд и заново импортировать не помогло. Проверил в wp-config.php правильность данных бд, все правильно — новые значения.
Потом просто удалил все данные в бд и появилась установка заново WordPress. Подскажите пожалуйста,что можно сделать?

Сергей

Столкнулся с такой же проблемой, если решили то подскажите как? не могу зайти в админку потому что кидает на старый адрес админки

Удалять таблицы из БД однозначно не стоило. Если перенос был на новый домен, убедитесь что в настройках домена были правильно указаны записи типа-А и NS. В админке WordPress тоже указывается новый адрес сайта. Если ничего не получается, обратитесь к вашему хостеру.

причем тут А и ns ))? лол

firefly_can_fly

подумай, при чем они здесь

Сергей

Спасибо большое за инструкцию!!! Все сделал как написано и вуаля...заработало!
Успехов Вам!!!

Всё сделал по инструкции. Но IP сервера другой и на сайт попасть не могу. Где прописывать IP?

Это уже скорее всего к доменному регистратору или хостеру вопрос.

Если честно то ни фига не понятно.

Насчет смены домена: как вариант, делается через 3 sql запроса в том же PHPMyAdmin

1. UPDATE wp_options SET option_value = REPLACE(option_value, 'http://domain.ru" rel="nofollow" target="_blank">http://domain.ru', 'http://newdomain.ru" rel="nofollow" target="_blank">http://newdomain.ru') WHERE option_name = 'home' OR option_name = 'siteurl';
2. UPDATE wp_posts SET guid = REPLACE(guid, 'http://domain.ru" rel="nofollow" target="_blank">http://domain.ru','http://newdomain.ru" rel="nofollow" target="_blank">http://newdomain.ru');
3. UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://domain.ru" rel="nofollow" target="_blank">http://domain.ru', 'http://newdomain.ru" rel="nofollow" target="_blank">http://newdomain.ru');