Рубрики
WordPress Веб-мастеринг Настройка

Как перенести сайт WordPress на другой хостинг.

Содержание:

Предположим, что мы переносим сайт с одного хостинга на другой причем со сменой домена. Изначально сайт располагался на домене wp1.ru, а переносим его на домен wp2.ru. Перед началом необходимо иметь следующие данные: адрес, логин и пароль сервера MySQL на старом и новом хостинге + адрес, логин и пароль FTP-сервера на старом и новом хостинге.

Бэкап базы данных

Бэкап можно осуществить двумя способами:

  • Из панели управления WordPress с помощью плагина WP-DBManager.
  • Из панели управления хостингом с помощью phpMyAdmin.

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

Итак, заходим в панель управления старого хостинга, находим ссылку на phpMyAdmin, вводим логин и пароль, в конце-концов попадаем на главную страницу phpMyAdmin.

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

Экспорт БД WordPress (1)
Экспорт БД WordPress (1)

Настройки экспорта:

Экспорт БД WordPress (2)
Экспорт БД WordPress (2)

Практически все параметры оставляем без изменений. Единственно рекомендую отметить опцию «Сохранить как файл» + «Упаковать в zip». После нажатия кнопки Ок, сохраняем файл к себе на локальный компьютер.

Обратите внимание, что мы экспортируем только таблицы, а не базу целиком. Это удобнее, т.к. хостеры практически всегда создают базы данных со своими префиксами, и при переносе БД на новый хост имя базы меняется.

Бэкап файлов

Здесь все просто с помощью ftp-клиента копируем все файлы WordPress на локальный компьютер.

Перенос базы данных на новый хост

Сначала необходимо создать базу данных. Здесь возможны варианты. Некоторые хостеры позволяют создавать БД и пользователей только из панели управления, другие же предоставляют эту возможность из phpMyAdmin. Предположим, что наш новый хостер относится ко второй группе.

Заходим в phpMyAdmin на новом хостинге и создаем базу данных. Поле Сравнение можно оставить без изменений:

Создание БД
Создание БД

Создаем отдельного пользователя БД (если требуется и если провайдер хостинга позволяет). Для этого открываем только что созданную базу, в верхнем меню переходим на закладку Привилегии, далее «Создать нового пользователя»:

Создание пользователя
Создание пользователя

Придумываем имя пользователя, пароль (не менее 6 символов). В разделе «База данных для пользователя» отмечаем пункт «

Теперь переходим к импорту таблиц. База должна быть выбрана. В верхнем меню переходим на закладку Импорт:

Импорт таблиц
Импорт таблиц

Выбираем файл, который был создан при экспорте из старой БД (можно отправлять сразу zip-архив). Нажимаем Ок. Если все прошло успешно, вы увидите надпись: «Импорт успешно завершен, запросов выполнено: » и в левой колонке появится список таблиц.

Т.к. мы выполняем переход на другой хостинг со сменой доменного имени, то в таблице wp_options необходимо поменять значения двух параметров: siteurl и home.
Открываем таблицу wp_options, ищем запись со значением siteurl в колонке option_name. Для изменения записи нажимаем на «карандаш»:

Редактирование записи в таблице БД (1)
Редактирование записи в таблице БД (1)

Изменяем поле option_value. Старое значение http://www.wp1.ru заменяем на новое http://www.wp2.ru и нажимаем Ок:

Редактирование записи в таблице БД (2)
Редактирование записи в таблице БД (2)

Таким же образом изменяем значение параметра home.

Перенос файлов на новый хост

Перед копированием файлов на новый хост, необходимо изменить параметры подключения к БД в файле wp-config.php.
Необходимо изменить старые значения констант:

  • DB_NAME — имя БД
  • DB_USER — имя пользователя
  • DB_PASSWORD — пароль пользователя
  • DB_HOST — адрес/имя сервера БД

на новые.

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

Завершающий этап

У WordPress есть особенность — по умолчанию все картинки вставляются с использованием абсолютного пути (с именем домена). Из-за этого при переносе сайта на другой домен картинки перестают работать. Проблему можно решить просто и быстро с помощью плагина Search and Replace.
После активации плагина переходим на страницу настроек. В разделе Search In (где искать),  ставим галочку напротив Content (поиск по содержанию всех страниц и постов). В поле Replace (это значение ищем и заменяем) вписываем старый домен. В поле with (значение для замены) вписываем новый домен. И нажимаем Go.

Search and Replace
Search and Replace

Статьи по теме:

62 ответа к “Как перенести сайт WordPress на другой хостинг.”

Спасибо. Все получилось. Сам бы целый день наверно разбирался бы)

Недавно я перешел мой вордпресс блог из хостинг Ipage на A2 Hosting и я хочу вам обратитесь внимание для вордпресс сайт. Если вы используйтесь плагин кеш,вы не надо его перейти потому что потом будет ощибка. Либо после перемещения,логин в админ вебсайта и удалить его потом установить еще раз.

Здравствуйте!Все пошагово делал как у Вас написано (кстати все толково и понятно-респект!),переносил с hostinger.com.ua на nic.ru—так при импорте на nic.ru тут же выдает такую запись «#1064 — You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‹’ at line 1», догадываюсь,что что-то с версиями SQL,но ЧТО ДЕЛАТЬ!? ПОМОГИТЕ ПОЖАЛУЙСТА!

Какую версию WordPress переносите?
Советую перед переносом отключить все плагины, ну а дальше по инструкции.

Спасибо,за оперативный ответ! WP ver.3.6—сайт takons.ru/AA/
Отключил плагины,—на localhost (denwer) создал новую базу.-импортировал.Та же ошибка!Правда теперь добавилось следующее:
Ошибка
В работе SQL-парсера произошла ошибка. Убедитесь в корректности запроса, отсутствии в нем опечаток и незакрытых кавычек. Возможной причиной ошибки может быть загрузка файла, содержащего двоичные данные вне кавычек в тексте запроса. Попробуйте выполнить запрос через командную строку MySQL. При наличии таковой, ниже будет выведена ошибка MySQL-сервера, облегчающая диагностику проблемы. Если проблема не решается, хотя через интерфейс командной строки запрос отрабатывает корректно, выявите ту часть запроса, которая вызывает ошибку и отправьте разработчикам описание ошибки, снабдив его данными из секции CUT выведенной ниже:
—-BEGIN CUT—-
eNrtzL0KwjAUQOFAFeS6OjrcBwjBNC1CnEINtZo/k2rBN3BxEBxcfWs3U99CcD18HB2jjxIbjk2J
RjuJAisUaw6pz70AsM90NBJrVrOyhlOK6BNF1WrXUzzrjIbrDa2/dMaozFYQrMqb7DmEXRgN9Wk8
CMYFDp1zPRjlWon3B3znEA7FZEEImZHXvtpOl/P35t9+s30AipluEg==
—-END CUT—-
—-BEGIN RAW—-

ERROR: C1 C2 LEN: 3 4 371
STR: 

MySQL: 5.5.25
USR OS, AGENT, VER: Win MOZILLA 5.0
PMA: 3.5.1
PHP VER,OS: 5.3.13 WINNT
LANG: ru
SQL:
PK�J4D �;
PK�J4D �;
—-END RAW—-
SQL-запрос:
PK�J4D �;
Ответ MySQL: Документация
#1064 — You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘PK’ at line 1

Похоже, что у вас проблема с кодировкой sql-файла…
Проверьте, чтобы кодировка при экспорте и при импорте была одинаковой!

Попробую! Я могу скинуть пароль и логин,и если Вас не затруднит,просто посмотрите.Только куда-в личку?Заранее спасибо.

Здравствуйте.Установил на сервер вордпресс.Если работать непосредственно с сервера, всё нормально.Но если входить на сервер с внешней сети то не отображаются стили,ошибка при входе на другие страницы.Описание причины тут есть — если устанавливаешь с сети вордпресс то только с сети будет корректно работать,если устанавливаешь на сервере на прямую то только на сервере будет работать нормально,а с интернета уже некоректно.Ну это неудобно.Если у меня сервер под рукой,зачем я буду лезть через интернет чтоб работать с вордпресом,с сервера который стоит рядом.Можно ли сделать чтоб вордпресс нормально работал и с интернета,и на прямую в сервере.

Я бы сделал так:
1. Cначала установил Вордпресс для внешней сети. Здесь важно сделать привязку именно к домену (если к ip, тогда ничего не выйдет).
2. Локально привязал бы этот домен к ip 127.0.0.1 (через файл hosts)

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

У меня в таблице SQL wp-options оказался лишь параметр urlsite. Параметр home отсутствовал. Главная сайта после переписывания адреса в urlsite отображалась корректно. Как оказалось, войти можно было только в консоль управления WP. Все остальные страницы были с адресами старого сайта и не открывались. Перерыл всю таблицу, но не нашел, как изменить адреса страниц на новые. Совершенно случайно зашел в консоли в «Параметры» WP, в категорию «Общие». В общих настройках после «название сайта», «описание сайта» стоит «адрес WordPress(URL) — он оказался новым. А вот следующий за ним «адрес сайта(URL) — был старым. Просто переписал адрес сайта на новый и сохранил изменения. Сайт заработал. Проверял в Денвере. Может кому-то поможет.
Спасибо автору за статью. Просто и понятно.

У меня в таблице SQL wp-options оказался лишь параметр urlsite. Параметр home отсутствовал.

Такого просто не может быть! ) home — обычно на второй странице в списке. Наверное просто не пролистали…

Кстати, чтобы быстро найти параметр можно воспользоваться вот таким sql-запросом:

SELECT * FROM `wp_options` WHERE `option_name` = 'home'

Да, еще на всякий случай. Если нет возможности изменить эти параметры в БД, то их можно прописать в wp-config.php, ну а потом поменять в Параметрах -> Общие.

define( 'WP_SITEURL', 'http://example.com/wordpress' );
define( 'WP_HOME', 'http://example.com' );

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

Warning: Cannot modify header information — headers already sent by (output started at /home/bh52566/public_html/wp-content/themes/ltheme/functions.php:448) in /home/bh52566/public_html/wp-login.php on line 409

Warning: Cannot modify header information — headers already sent by (output started at /home/bh5256/public_html/wp-content/themes/ltheme/functions.php:448) in /home/bh5256/public_html/wp-login.php on line 421

Разобрался, дело не в этой строке. Видимо при бекапе копировании или редактировании появился пробел в самом конце, а нужно чтобы его не было.

Замучился искать… Файл в утф8 без бом, а вот про лишние пустые строки не знал)))

нельзя чтобы в файле темы functions.php, после были лишние пустые пробелы или строки.

перед

вот и все!:-)

После переноса с денвера не отображает шаблон и стили, тупо один контент в ряд.
Подозрение на эту строку в базе данных
‘recently_edited’, ‘a:4:{i:0;s:74:»Z:\\home\\localhost\\www\\мойсайт/wp-content/themes/
Как исправить? Прописывал вместо Z:\\home\\localhost\\www\\ разные пути, ничего не получается, всю голову уже сломал!

У вас неправильный путь к файлу style.css — отсюда проблемы со стилями.
Посмотрите исходный код — какой путь к файлу??

В БД, таблица wp_options нужно поменять только siteurl и home.
recently_edited менять не нужно!

Кстати, админка нормально открывается?

У меня выдает ошибку » #1062 — Duplicate entry ‘3’ for key ‘PRIMARY’ «.
Когда импортирую таблицу в новую ДБ.

Решение проблемы:

Эта ошибка появляется по той причине, что в существующую таблицу с ключевым полем типа AUTO_INCREMENT пытаются вставить запись с уже существующим ключом, что не возможно, ибо поле ключевое, т.е. не повторяющееся.
Когда у меня выскочила такая ошибка — «#1062 — Duplicate entry ‘1’ for key 1», я решил проблему путем установки галочки в PhpMyAdmin напротив «Добавить DROP TABLE / VIEW / PROCEDURE / FUNCTION» и снятия галочки «Добавить IF NOT EXISTS» (вторая возможно необязательная) при экспорте

Просто офигительно! Большое спасибо.
Сделал все по порядку — работает отлично.
(Переносил с 000webhost.com на Nic.ru)

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Срок проверки reCAPTCHA истек. Перезагрузите страницу.