Рубрики
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,но ЧТО ДЕЛАТЬ!? ПОМОГИТЕ ПОЖАЛУЙСТА!

Спасибо,за оперативный ответ! 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 не будет опубликован. Обязательные поля помечены *