Перенос WordPress-сайта на другой хостинг

23 декабря 2007 г.

Время от времени может возникнуть ситуация, когда Вам требуется перенести сайт, работающий на движке WordPress, к новому хостинг-провайдеру. Не будем искать причины переноса, суть не в этом.

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

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

В принципе, всю нижеописанную информацию можно применить и к любому другому блоговому движку или системе управления сайтом. Я упоминаю WordPress, поскольку это наиболее часто используемая блоговая платформа.

Итак, способы переноса WordPress-сайта на другой хостинг:

  1. Перенести сайт вручную. Подразумевается следующее:
    • Сначала необходимо скопировать все файлы с фтп-сервера со старого хостинг на новый. Данный процесс упростит возможность сжатия всех файлов в один архив, который закачивается и распаковывается на новом хостинге. Любой современный хостер должен поддерживать работу с архивами через панель управления хостингом. Иначе пофайловая загрузка займет гораздо больше времени (в папке с Вордпрессом очень много файлов).

      Другой момент здесь - возможность копирования файлов напрямую с одного фтп-сервера на другой. Я пока с данной возможностью не встречался, но, насколько мне известно, это есть. Если такой возможности нет, то процесс переноса файлов весьма неудобен - сначала их необходимо скачать на свой компьютер (конечно, если нет локальной копии), а после этого закачивать на новый хостинг.

      Если новый хостер не “умеет” распаковывать архивы, то Вам поможет статья “Как распаковать ZIP архив на FTP-сервере

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

    • Перенести дамп базы данных. Сначала необходимо экспортировать дамп БД через phpMyAdmin, используя соответствующий пункт меню. После чего импортировать сей дамп через тот же инструмент на новом хостинге. Процесс, вроде бы, прост, но в ряде случаев, особенно при загрузке дампов большого размера, могут возникнуть трудности с импортом - появляется либо пустая страница, либо ошибка типа “временной лимит превышен”.
  2. Попросить нового хостера перенести все содержимое со старого хостинга. Суть проста - необходимо предоставить саппорту хостера все необходимые данные от старого хостинг-аккаунта и он (саппорт) все действия по переносу WordPress-сайта выполнит за Вас. Адекватный хостинг-провайдер в большинстве случаев не откажет Вам в этом, ведь он должен оставить хорошее впечатление о качестве своих услуг.
  3. Перенести сайт с помощью SSH. Самый простой и интересный способ. Используя этот вариант, процесс переноса занимает у меня от силы 15-20 минут. Практически все автоматизировано, никаких лишних, так сказать, телодвижений. Главное - у Вас должен быть shell-доступ к своему аккаунту и на том, и на другом хостинге. Это максимально упростит перенос WordPress-сайта.

    Как в таком случае выглядит последовательность действий:

    • Через файловый менеджер в панели управления хостинга архивируем весь сайт.
    • Заходим через SSH-клиент (мне очень понравилась программа WinSCP) в аккаунт старого хостера и создаем дамп нужной БД следующей командой:
      1
      mysqldump -u <strong>USERNAME</strong> -p<strong>PASSWORD</strong> <strong>BD_NAME</strong> > dump.sql

      где:

      USERNAME - имя пользователя БД,
      PASSWORD - пароль пользователя БД,
      BD_NAME - название БД.

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

      Поскольку дамп БД очень хорошо сжимается в архив, лучше его запаковать.

    • Заходим через SSH-клиент в нужную папку аккаунта нового хостинга и скачиваем только что созданные архивы сайта и БД следующими командами:
      1
      2
      wget http://site.name/site-archive.zip<br />
      wget http://site.name/dump.zip

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

    • Распаковываем скачанные архивы в панели управления нового хостера.
    • Импортируем дамп в базу данных следующей командой:
      1
      mysql -u <strong>USERNAME</strong> -p<strong>PASSWORD</strong> -D <strong>BD_NAME</strong> < dump.sql

      где USERNAME, PASSWORD и BD_NAME - соответствующие параметры БД на новом хостинге (естественно, она должна быть создана заранее).

    Таким образом, на первый взгляд кажущийся сложным 3-й способ, на самом деле очень прост и, благодаря технологии SSH, значительно облегчает перенос WordPress-сайта на другой хостинг.

После всех вышеописанных действий остается только сменить NS-сервера Вашего домена, чтобы сайт заработал на новом хостинге.

На этом все. Надеюсь, что данная статья кому-то окажется полезной.

Теги: , , , автор: Dimox | рубрика WordPress

Комментарии (66): »

  1. Очень актуально, как раз собирался переводить блог на новый хостинг. Спасибо!

  2. Максим, рад, что написал вовремя и это пригодится.

    За лого спасибо ;)

  3. Константин, о чем вы? Я не понял.

  4. Сам технический перенос не сложен, особенно, как было отмечено, с помощью SSH. Хотят и тут могут быть некоторые подставы. Обычно у хостера стоит лимит времени на выполнение пользовательского процесса. При большой базе данных mysqldump может не успеть отработать за это время.

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

    Самое простое решение, которое вижу. Это перенести сайт и DNS, но к БД подключаться на старом хостинге. А уже после обновления DNS перенести базу. ;)

  5. Brim, спасибо, что дополнили. С разновременным обновлением DNS мне приходилось сталкиваться :).

    Самое простое решение, которое вижу. Это перенести сайт и DNS, но к БД подключаться на старом хостинге. А уже после обновления DNS перенести базу. ;)

    Мне кажется, это не однозначное решение. Все по той же причине, что в разных сегментах сети DNS обновляется в разное время. У меня DNS обычно обновляется очень быстро (в течение часа, кажется). Т.е. даже в этом случае, если я уже перенесу базу после обновления DNS, некоторые пользователи увидят сайт со старого хостинга.

    Так в чем же тогда разница с тем вариантом, что я описал в статье?

  6. У меня DNS обычно обновляется очень быстро (в течение часа, кажется). Т.е. даже в этом случае, если я уже перенесу базу после обновления DNS, некоторые пользователи увидят сайт со старого хостинга.

    Ну так базу можно перенести и через несколько дней. ;) Смысл в том, что определенного момента, когда DNS везде обновится, оба сайта должны использовать одну и ту же базу данных.
    Причем подумал, что ведь часто переезд происходит из-за того, что у старого хостинга какие-то проблемы, так что базой можно пользоваться и новой. ;) Главное, чтобы хостер позволял подключаться к ней не только с localhost’а, но и из интернета. :)

  7. оба сайта должны использовать одну и ту же базу данных

    Хотел еще в прошлый раз спросить: “Разве физически размещенный на новом хостинге сайт может подключаться к БД, распложенной на другом хостинге?”, но из того, что вы сейчас ответили, уже вижу, что может :).

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

  8. Раз уж зашел разговор, каким образом происходит коннект к удаленной БД? Что пишется вместо localhost?

    Возможность подключения зависит от настроек MySQL-сервера. Ну и фаервола. :)
    Вместо localhost пишется адрес сервера или ip-адрес.

  9. основная проблема при переносе сайта с одного хостинга на другой возникает с кодировками баз)).. но по этой проблеме можно написать еще не одну статью :))

    @
  10. Понятно, Brim, спасибо ;)

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

  11. Спасибо за статью, сейчас как раз актуально ;)

  12. Ок, friend, пожалуйста.

    Значит не зря писал =)

  13. При переносе на локальный хост (типа Денвера) “ручной” метод не работает. Метод был следующий - скачивание файлов Filezilla, заливка их на локальный хост, дамп БД с последующей распаковкой на локальную БД, изменение в соотв с новыми настройками конфиг.пхп.
    Получилось:
    1. При заходе на локальный адрес Вордперсс почему то подгружает старый адрес с добавлением новой локации. Где он его берет? Облазил все файлы (старый_адрес.ком не находится также как и старый_адрес) и БД (поменял в БД адрес старый_адрес.ком на локальный), все равно тупо лезет по старому адресу http://старый_адрес.ком/новая_локация.
    2. При попытке зайти в админку “Fatal error: Call to undefined function wp_reset_vars() in T:\home\users\wordpress\wp-admin\admin.php on line 29″

    Мде. Хотел шабик покрутить, видно не судьба полностью сэмулировать. Кстати мой любимый МОДх таким способом перенесся без проблем (это в качестве камешка в огород Вордпресса:)

    @
  14. Вообще для переноса БД лучше использовать WordPress XML Export, хотя как и с дампом БД есть проблемы с объемом информации. Скажем если у Вас туева туча заметок оно иногда не все может добавить в БД. Вариант: сделать отдельные XML’ы или дамбы данных разбитые по рубрикам блога ну и т.д.

  15. wmas, при использовании WordPress XML Export кажется комментарии не сохраняются. Или я не прав?

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

  16. 2Dimox я пробовал эту фичу для перехода одного блога с версии 1.5 на 2 с копейками, щас не помню, вроде комментарии перенеслись. Здесь решается и проблема с кодировкой на новом хостинге т.к. все делает плагин автоматически. Хотя, я могу и ошибаться ;)

  17. Может уже спрашивали, но настройки плагинов сохраняются при переносе с помощью SSH?

    @
  18. Антон Веринов, настройки плагинов очевидно могут хранится только в двух местах:
    1. В базе данных.
    2. В конфигурационных файлах.
    И то, и другое мы влюбом случае копируем. Причем любым методом. Через SSH в том числе. :)

  19. wmas, я не стану пользоваться данным способом в случае с темой моего поста, поскольку после смены DNS возможен простой сайта, ведь мы не знаем точно, когда сайт будет доступен на новом хостинге, чтобы импортировать содержимое ВП. WordPress XML Export лучше применять, как в вашем случае - при апгрейде ВП.

    Антон Веринов, все сохраняется, мы же ничего не меняем в БД, а только переносим ее.

  20. Помнится я тебя Dimox в свое время маленько помучал в асике на тему сабжа :-) щас смотрю уже и статья есть, респект.

  21. Mr. Anderson, ага, совсем скоро после того, как я тебе ответил, пришла мысль написать об этом статью :).

  22. Что бы не возникла рассинхронизация базы на время “переписывания ДНС” достаточно на старых НСах поднять зону на новом сервере, траф перетечет за 5-10 минут, зависит от ТТЛ, потом переписывать НСы, либо менять IP, если нсы собственные.
    Хмм… даже не думал, что из столь простой штуки как переезд можно целый пост придумать =) В общем это задача для админа, белому человеку ее думать не надо =)

    @
  23. Kosyan, к сожалению совсем ничего не понял из того, что вы сказали в первом абзаце.

    В общем это задача для админа, белому человеку ее думать не надо =)

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

  24. Что бы не возникла рассинхронизация базы на время “переписывания ДНС” достаточно на старых НСах поднять зону на новом сервере, траф перетечет за 5-10 минут

    А сами-то пробовали? ;) Из моего неоднократного опыта во время работы в службе поддержки хостинга, могу сказать, что на старый адрес траф течет минимум несколько часов, обычно несколько дней. Т.к. информация в ДНС обновляется далеко не за 10 минут. + во всяких Аутлуках у юзерав по умолчанию включен кеш адресов. На неделю блин.

  25. А сами-то пробовали? ;) Из моего неоднократного опыта во время работы в службе поддержки хостинга, могу сказать, что на старый адрес траф течет минимум несколько часов, обычно несколько дней. Т.к. информация в ДНС обновляется далеко не за 10 минут. + во всяких Аутлуках у юзерав по умолчанию включен кеш адресов. На неделю блин.

    Неоднократно. Время кеширования устанавливается в ДНС и называется TTL (time to live) http://en.wikipedia.org/wiki/Time_to_live#Time_to_live_of_DNS_records . Давным давно его делали большим, что бы не дергался часто ДНС, экономились ресурсы машины и трафик. Однако те времена прошли. Ставить TTL больше 1 часа кощунство и за такие вещи надо отрывать руки. Инструкция TTL обязательна для кеширующих прокси и файрволов, однако же умельцы есть всякие, но стоит ли обращать внимание на 1-2% безумцев?

    достаточно на старых НСах поднять зону на новом сервере

    эээ, ну можно так: “поменять запись IN A на IP адрес нового сервера”.
    domain.com. 1H IN A 192.168.1.1
    примерно так.

    Самостоятельно быстрее, говорите? Если комментарии пишут хотя бы раз в 10 минут, сколько потеряете за сутки, пока новые ДНС расползутся? По стандартам заявлено до 4 часов, однако справедливо лишь для доменов .com, .net и т.п. В зоне .ru творят что хотят, бывает и двое суток колбасит.

    За 7 лет онлайн, я переезжал наверное раз 15, серверов значительно больше чем один, при грамотной постановке задачи и надежном админе на сервак уходит пара-тройка часов, с учетом синхронизации контента и баз, причем бОльшее время идет на упаковывание чемоданов и перекачку барахла.

    @
  26. А зачем такие проблемы? Создается бэкап, переливается любым способом на новый хост и раззиповывается. Все. Если есть отличия между панелями хостинга (например, DirectAdmin и cpanel) - есть скрипты-конвертеры.

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

    но вот вопрос: хочу сменить доменное имя, а адреса к залитым файлам через админский интерфейс вордпресса стоят другие - а как их все поменять разом? иначе при смене имени будут все битые((

  28. ой, пааардон! тока что увидел ссылку)))

  29. С дампом базы могут возникнуть проблемы если версии MySQL разные :(

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

    @
  31. [quote comment=”3328″]>Kosyan[/quote]
    Делаю дамп у себя на виртуальном 4.1.*, пытаюсь обновить на хостинге 4.0.* в результате ошибка. Разница была лишь в версиях MySQL.

  32. Дамп - суть набор sql запросов и данных, что-то не могу себе представить какие запросы поддерживались бы в 4.1 и не поддерживались в 4.0, это элементарные запросы на создание таблиц и внесение данных.
    Какую ошибку то пишет?

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

  34. Ryoga, дело, скорее всего, в кривом дампе.

  35. Мда.. геморой еще тот - переносить на новый хостинг.
    самое интересное, что я не смог разобратся в описанной вами программе для SSH соединения. даже подключения не вышло. а жаль…

    @
  36. я не смог разобратся в описанной вами программе для SSH соединения. даже подключения не вышло. а жаль…

    Возможно, дело в том, что у вас нет доступа к SSH. Часто по умолчанию он закрыт, поэтому нужно обращаться к хостеру.

  37. Хорошо, тогда если можно еще один вопрос.
    Можно ли установить на новом хосте чистый Вордпресс, после чего перенести тему с плагинами, и в wp-config.php прописать базу, которую я импортировал? Таким способом у меня не получается..
    Ошибки выдает, в основном, наверное из-за кодировки.

    @
  38. Если установите с нуля, то не сможете импортировать базу. При импорте база должна быть абсолютно пустой.

  39. Спасибо Вам за очень полезную статью, как раз на этой неделе вынужден переехать на другой хостинг. Сегодня возникла трудность, не могу сделать дамп БД через WinSCP поскольку не знаю пароля пользователя БД, програмист что устанвливал WP мне не дал его, а теперь не помнит.

    Вы случайно не знаете как его можно узнать, через cPanel ничего не нашол, возможно не там ищу.

    В связи с этим можно ли выгрузить БД через cPanel, заархивировать и положить в корневую папку старого хостинга, а потом пойти по пунктам дальше?

    Огромнейший сенкс, просто суперценная информация у вас на блоге ;)

    @
  40. Вы случайно не знаете как его можно узнать, через cPanel ничего не нашол, возможно не там ищу.

    Пароль пользователя записан в файле wp-config.php, который в корне WordPress-сайта.

    В связи с этим можно ли выгрузить БД через cPanel, заархивировать и положить в корневую папку старого хостинга, а потом пойти по пунктам дальше?

    Не знаю, можно ли через cPanel, но знаю, что можно через phpmyadmin.

  41. Вообще логин, пароль и имя базы прописаны в wp-config.php в самом начале.
    Скрипач не нужен =)

    @
  42. Dimox и Kosyan, спасибо ;)

    Вот сейчас осуществляю переезд по смешанному пункту 1+2, с Арбатека на Хостинг Центр.

    @
  43. Именно трудоемкость ручного переноса уже полгода останавливает от смены хостинг-провайдера, узнала про SSH, теперь точно перееду! Спасибо!

    @
  44. Вот только команда wget _http://site.name/site-archive.zip у меня не работает, получается с командой типа wget -P /путь_на_новом_сервере/ _ftp://логин:пароль@адрес_ftp/www/адрес_сайта/архив.zip

    @
  45. Спасибо за советы, вот как раз сегодня вечером воспользуюсь.

    @
  46. Спасибо за статью! Как раз переезжаю с Ворпрессом…
    Завтра узнаю будут ли косячки или нет - пока днски не обновились!
    Сделал все первым способом, ибо бюджетный хостер не хочет лишний раз напрягаться, а SSH не владею…
    Дополнил бы для новичков - в первом способе - возможны корректировки в wp-config.php

  47. У меня WP 2.2.3 - пытаюсь перенести всякими разными способами, но ничего не помогает. Максимум чего добивался - получал блог без текстов - т.е. вижу даты постов и кол-во каментов, кол-во тем в разделах, а самих текстов постов. каментов и разделов нет. Теги (плагин simple tags) тоже потеряны. Как быть - не представляю. :(

  48. Друзья, сама промучилась с этими кодировками, перечитала кучу всяких статей, сообщений на форумах и т.п. Как я понимаю, кракозябры при переносе ооочень распространенная проблема! Можно конечно чахнуть над базами данных не один день, править их, отправлять sql запросы и т.п. Но все гениальное действительно просто) Все, что вам нужно сделать, чтобы решить все проблемы - это перенести все файлы на новый хостинг, создать абсолютно новую базу данных, установить за 5 мин вордпресс 2.7 иии… там есть замечательная функция в разделе “инструменты” импорт данных (конечно же вам надо будет сделать перед этим экспорт со старого сайта, но там уже все понятно! главное, чтобы как на старом, так и на новом сайте стояли самые последние версии вордпресс! полный автомат) и тогда у вас все аккуратненько так перетащится без кракозябр и прочих чудовищ на нове место)) ура!

    если вдруг вопросы, хотя их не должно быть, пишите на kurasheva@me.com

  49. После переноса не работают E-mail уведомления, в чем может быть причина?

    @
  50. Как вариант - IP-адреса хостера находятся в черных списках и почтовые сервисы переносят письма в спам.

  51. Добрый день! Меня интересует такой вопрос: заметят ли вообще посиковые машины, что сайт перенесен на другой хостинг? И отразится ли это на его позициях в поиске?

  52. То, что перенесен, заметят, т.к. сменится IP-адрес сайта. А на позиции по идее перенос никак не должен отразиться.

  53. Доброе,
    Подскажите пожалуйста, кто в курсе - переношу WP 2.7.1. Базу, файлы перенес, wp-config.php подправил.

    Но при ни одна страница не отображается - пустота!

    WP пишет какие нить логи? В чем может быть трабл. Спасибо.

    @
  54. после перезда на новый хост возникли проблемы: страницы открывающиеся через ссылку открываются не совсем правильно. Правая колонка спускается и наежает на левую. Смещаются таблицы. Через админку данная проблема не наблюдается. Что посоветуту по данному вопросу.

  55. Огромнейшее спасибо!
    Как раз сейчас есть ряд сайтов на WP, которым необходим переезд на новый хостинг.
    Попробую вначале вариант №3.

  56. у меня проблема
    сайт перенёс с хостинга на локалхост
    отображается весь сайт посты рубрики ссылки .. всё правильно перенеслось
    только вот сам контент … сам текст в постах … пропал

    на мой взгляд всё перебпробовал … может кто с таким сталкивался и знает как решить?
    спасибо

  57. Спасибо за полезные инструкции. Перенес три домена с помощью вашего блога)

  58. Спасибо за статью. Перенес блог на новый сервер. Статьи работают, фотографии в статьи грузятся, всё гуд.
    Но после обнаружились проблемы.

    1. Не загружаются фотографии в NextGEN Gallery. Даже если загрузить фото в папку галерии и нажать кнопку «Scan folder for new images», то не работает, выдает пустую страницу только с левым меню.
    2. Не получается установить и обновить плагины. Тоже выдает пустую страницу только с левым меню.

    @
  59. Спасибо, интересная статья!

  60. У меня такая проблема.
    У меня есть блог и я хочу его перенести на новый хостинг и с новым доменом.
    На хостинге уже все готово. Я установил вордпресс и создал БД. Импортировал все таблицы со старого блога в пустную новую БД.
    Теперь когда я ввожу mesite.pp.ua/wp-admin меня перебьрасывает на страницу входа старой панели управления mysite.ax3.net/wp-admin.
    Вот такой прикол. Как быть?

    @

Присоединяйтесь к обсуждению!

Отправляя кoммeнтapий, Вы автоматически принимаете правила кoммeнтиpoвaния на этом блоге.

Правила кoммeнтиpoвaния на блоге dimox.name:

  1. Первый кoммeнтapий всегда проходит премодерацию.
  2. В поле "URL блога" можно указывать только ссылку на главную страницу вашего блога. Ссылки на прочие веб-ресурсы (в том числе блоги/сплоги, созданные не для людей) будут удалены.
  3. Запрещается использовать в качестве имени комментатора слоганы/названия сайтов, рекламные фразы, ключевые и т.п. слова. В случае несоблюдения этого условия имя изменяется по усмотрению владельца блога. Просьба указывать нормальное имя или ник.
  4. Весьма вероятно, что короткий и неинформативный кoммeнтapий вида "Спасибо!", "Интересная статья", будет удален. Исключение составляют знакомые автору блога комментаторы.

Подписаться, не комментируя

Предыдущие из рубрики