Как перенести работающий WordPress-сайт на локальный сервер

После изучения того, как просто запустить WordPress-сервер в Windows или Mac, некоторые из наших пользователей задали вопрос, как переместить функционирующий WordPress-сайт на локальный сервер. Мы уже показывали ранее, как переместить WordPress-сайт с локального сервера на онлайн-хостинг. Указанная статья – полная противоположность данному действию. В этой статье мы покажем вам, как перенести работающий WordPress-сайт на локальный сервер.

Почему может возникнуть необходимость переноса работающего WordPress сайта на локальный сервер?

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

Даже учитывая тот факт, что вы можете провести любое тестирование, воспользовавшись фиктивным контентом в WordPress, реальные данные позволяют получить лучшее представление о том, как все изменения отразятся на сайте.

Важное замечание: перемещаете ли вы свой wordpress-сайт на новый домен, или же с wordpress.com на отдельный хостинг, либо на свой локальный сервер, всегда создавайте сначала резервную копию своего сайта. Мы рекомендуем использовать BackupBuddy для создания бэкапов. Также вы можете забэкапить свой сайт с помощью BackWPUp, либо создать ручной бэкап.

Перемещение WordPress-сайта на локальный сервер с помощью плагина

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

create-package-button

Чтобы создать новый архив, вам необходимо щелкнуть по кнопке «Create New Package». Duplicator начнет создание архива для всего вашего сайта. Это может занять некоторое время, зависящее от того, сколько данных присутствует на вашем работающем сайте. Как только процесс создания архива будет завершен, вы будете перенаправлены на экран архивов, на котором отображаются недавно созданные архивы со своими инсталляторами. Чтобы переместить свой сайт, вам понадобится скачать на свой компьютер zip-файл, а также инсталлятор.

duplicator-package-download

Сайту на вашем локальном сервере понадобится новая база данных, так что вы должны будете создать ее с помощью phpMyAdmin. Как только вы создадите базу данных, вы должны будете скопировать архив и установить полученный файл в пустую папку в веб-директории вашего локального сервера. Для запуска инсталляционного скрипта вам потребуется открыть файл инсталлятора в вашем веб-браузере. К примеру, если вы вставили оба файла в папку /test-site/, вы можете запустить инсталляционный скрипт путем перехода к следующему адресу: http://localhost/test-site/install.php.  Вы увидите инсталляционный скрипт Duplicator, который будет иметь следующий вид:

duplicator-install1

На представленном экране вы должны ввести информацию по базе данных вашего локального сервера. В качестве поля Host обычно задается localhost. Если вы не создавали нового пользователя для MySQL на вашем сайте, то в таком случае username вводим как root. Если вы используете пароль для root-пользователя, то в таком случае вводим этот пароль, иначе оставляем поле пустым. Наконец, вводим название базы данных.

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

updateurls-duplicator

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

success-duplicator

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

Ручной перенос работающего WordPress сайта на локальный сервер

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

Чтобы экспортировать базу данных вашего работающего сайта, вы должны войти в консоль cPanel и щелкнуть по phpMyAdmin. В самом phpMyAdmin вам надо выбрать базу данных, которую вы желаете экспортировать, после чего щелкнуть по вкладке export в самом верху страницы.

export-tab-phpmyadmin

phpMyAdmin спросит вас, какой метод вам нужен – быстрый или произвольный. Мы рекомендуем использовать произвольный метод и выбирать zip в качестве вида компрессии. Иногда WP-плагины могут создавать свои собственные таблицы внутри базы данных WordPress. Если вы больше не используете данный плагин, то в таком случае произвольный метод позволит вам исключить такие таблицы. Оставляем другие опции неизменными, после чего щелкаем по кнопке Go для загрузки бэкапа базы данных в формате zip.

export-db-phpmyadmin

Как только вы скачаете бэкап базы данных, на следующем шаге вам понадобится загрузить ваши WP-файлы. Чтобы сделать это, вам потребуется соединиться со своим WordPress-сайтом через FTP-клиент, такой как Filezilla. Загружаем все свои WordPress-файлы вместе с папкой на свой компьютер. Загрузка файлов может занять некоторое время, что зависит от объема данных на вашем сайте.

downloadfiles-ftp

Если вы загружали все файлы, а не только wp-content папку, то в таком случае просто скопируйте эти файлы в папку на вашем локальном сервере, куда вы хотите установить WordPress.

На локальном сервере вам понадобится создать базу данных для вашего WordPress-сайта. Чтобы сделать это, вам понадобится открыть http://localhost/phpmyadmin/ в вашем браузере и создать новую базу данных. После создания базы данных щелкаем по вкладке Import в самом верху страницы. На следующем экране вам нужно щелкнуть по кнопке Choose File для выбора экспортируемого файла базы данных WordPress, после чего щелкнуть по кнопке Go. phpMyAdmin импортирует вашу базу данных и покажет вам сообщение об успешном завершении.

importing-wpdb-phpmyadmin

Теперь, когда ваша база данных установлена, вам нужно обновить URL-адреса внутри базы данных, которые ссылаются на ваш работающий сайт. Вы можете сделать это путем выполнения SQL-запросов в phpMyAdmin. Убедитесь в том, что вы выбрали базу данных вашего локального сайта, после чего щелкните по SQL. На экране SQL в phpMyAdmin вставьте следующий код. Убедитесь в том, что вы заменили example.com на адрес вашего работающего сайта, и localhost/test-site на адрес вашего локального сервера.

UPDATE wp_options SET option_value = replace(option_value, 'http://www.example.com', 'http://localhost/test-site') WHERE option_name = 'home' OR option_name = 'siteurl';
 
UPDATE wp_posts SET post_content = replace(post_content, 'http://www.example.com', 'http://localhost/test-site');
 
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://www.example.com','http://localhost/test-site');

Данный запрос поможет вам изменить ссылки на ваш работающий сайт и ваш локальный сервер в базе данных.

Готово. Ваш веб-сайт полностью перенесен на локальный сервер. Теперь вы можете тестировать разные возможности.

Источник: wpbeginner.com

Блог про WordPress
Комментарии: 62
  1. Андрей

    В ручном варианте проще просто открыть дамп в текстовом редакторе и заменить с помощью функции «поиск и замена» (в том же notepad++). Так гарантировано не пропустите ни чего.

    1. Дмитрий (автор)

      Да, как вариант, тоже имеет место.

  2. Маргарита

    Добрый день. Большое спасибо за статью! Скажите, пожалуйста, а где искать дирректорию web на MAMP, чтобы туда отправить архив?
    Спасибо.

    1. Дмитрий (автор)

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

  3. Маргарита

    Дмитрий, большое спасибо! Я уже разобралась и перенесла сайт.

  4. pierre

    Спасибо! Всё работает!

  5. Андрей

    Спасибо огромное очень полезная статья, узнал о новом плагине,а то всё вручную и вручную

  6. GladWeb

    Полезная статья, однако бывают моменты когда XML весит много и нужно его разделить. Способ описал в своем блоге: http://gladweb.ru/wordpress-wxr-file-splitter-razdelitel-bolshix-xml-fajlov/

  7. Dgeibl

    Использовал описанный Автором метод с использованием плагина Duplicator и локального сервера WAMP под Windows. Все встало ок, но столкнулся с неожиданной проблемой — главная страница локальной версии сайта открывается, а вот все другие страницы и записи отдают 404 ошибку.

    Решение проблемы нашел вот в этом тредике поддержки плагина Duplicator — http://wordpress.org/support/topic/plugin-duplicator-doesnt-seem-to-work-with-wampserver

    Если кратко и по-русски — проблема в дефолтных настройках WAMP под Windows, а именно в том, что касается работы с символическими ссылками.

    Что надо сделать, чтобы пофиксить эту проблему:
    1) Найти файл C:\wamp\bin\apache\apache2.4.9\conf\httpd.conf и открыть его в любом текстовом редакторе
    2) Находим строчку «#LoadModule rewrite_module modules/mod_rewrite.so» и раскомментируем её, т.е. убираем символ «#» в начале строки.
    3) Сохраняем изменения.
    4) Перезапускаем WAMP, заново устанавливаем копию нашего сайта при помощи Duplicator Installer как указано в статье. Теперь все странички и записи вашей локальной копии сайта должны открываться ок.

    Я потратил на поиски этого решения 2 часа. Надеюсь, комментарий сэкономит вам это время.

    P.S. В оригинальном тредике ещё советуют в файле «httpd.conf» найти блок «Options FollowSymlinks» и поменять там строку «AllowOverride none» на строку «AllowOverride all». В моей версии WAMP это уже и так было сделано, но вам может понадобиться это сделать.

    Автору спасибо за Duplicator, очень удобно работает.

    1. Дмитрий (автор)

      Большое спасибо за подробные замечания, надеюсь, кому-то это поможет и позволит сэкономить время!

  8. Алена

    Спасибо, добрый человек! Так долго мучилась, и наконец-то все получилось!!!!

  9. Евгений

    Спасибо за статью!

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

    1. Дмитрий (автор)
  10. Антон

    Постоянно теряю этот сниппет SQL-запроса обновления адреса. Теперь буду знать, что он тут. Спасибо!

  11. gearmobile

    Спасибо за Duplicator! )

  12. Antonic

    Похоже, что с WordPress версии 4.1.1 не нужно менять домен в базе данных? Возвращает ноль.

    1. Дмитрий (автор)

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

  13. Antonic

    Нашел более актуальный SQL-запрос для смены домена, если WordPress начиная с версии 4.1.1. При исполнения такого запроса видно, что строки меняются, а не как со старым, когда возвращается ноль строк (нашел на codemaniac.ru):
    #Заменить адрес сайта
    UPDATE wp_options SET option_value = replace(option_value, ‘http://domain.com’,’http://newdomain.com’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;
    #Заменить все адреса страниц на новые
    UPDATE wp_posts SET guid = replace(guid, ‘http://domain.com’,’http://newdomain.com’);
    #Заменить все ссылки, которые находятся в тексте постов на новые
    UPDATE wp_posts SET post_content = replace(post_content, ‘http://domain.com’,’http://newdomain.com’);

    1. Дмитрий (автор)

      Спасибо, полезно!

  14. Влад

    столкнулся с тем, что не получалось импортировать базу данных из-за большого размера (лимит был 2 мб, а БД весила около 7 мб) — что сделал: нашел файл php.ini (расположен в папке php вашего локального сервера) и отредактировал следующие значения: post_max_size, upload_max_filesize (значения должны быть одинаковыми) и memory_limit (это значения можно попробовать не изменять). После измений я сохранил файл php.ini и перезапустил сервер. База данных импортировалась, но затем вылез второй баг, когда я начал прописывать в консоле SQL запросы приведенные автором — загружалась только домашняя страница, а при попытке перехода по любой ссылке внутри сайта меня перебасывало в окошко Apacha. Пришлось удалить БД и быстренько повторить весь процесс, когда подошла очередь повторения SQL запросов я решил все сделать в ручную: зашел в свою свежезагруженную БД, нашел таблицу wp_options, где отредактировал два поля home и siteurl (прописал адреса своего локального сайта). Но даже после всего этого внутренние url сайта не заработали, тогда я нашел оригинал переведенной автором заметки и о чудо в комметариях я нашел простой совет: I went into site/wp-admin. Then went to Setting > Permalinks and just clicked Save Changes. It updated something and all of my links work. Вуаля сайт полностью заработал на локальном сервере!

    1. Antonic

      Да, SQL-запрос нужен правильный. И иногда заметил, что после этого, если были настроены ЧПУ ранее, то бросает на 404 апача. Помогает зайти в настройки ЧПУ и пересохранить их.

  15. Рома

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

    1. Дмитрий (автор)

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

  16. Kjersti

    Мои SQL-запросы в упор не принимаются. Ни тот, что дан в статье, ни тот, что в комментариях. Не нравится синтаксис и всё тут =(

    Попробую через плагин. У меня стоит Денвер с более старым ПХП, посему не поулчилось — поставлю ещё один.

  17. Борис

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

  18. Dima

    Дмитрий, выручайте пожалуйста, может подскажете как с домена третьего уровня перенести WP сайт на другой сервер (на стандартный домен типа mysite.ru).
    Заранее Спасибо!

    1. Дмитрий (автор)

      Здравствуйте.
      Есть хорошая статья в блоге про перенос сайтов с одного домена на другой:

      https://oddstyle.ru/wordpress-2/wordpress-plaginy/platnye-i-besplatnye-resheniya-dlya-klonirovaniya-i-perenosa-wordpress-sajta.html

  19. Vladi

    Здравствуйте!
    Подскажите пожалуйста, нужно срочно разобраться, используя плагин duplicator сделал бекап сайта. Все делал по инструкции, ошибок не обнаружено.
    В конечном итоге по нажатию на test site — перебрасывает на страничку install.php для wordpress.
    Зашел в phpmyadmin, в созданной ранее базе только таблицы плагинов, wp таблиц нет.
    Пробовал как с локалки так и с другого хостинга на хостинг, результат один.

  20. Vladi

    Сорри, вот скрин phpmyadmin после переноса duplicatar’ом
    http://pixs.ru/showimage/Snimokekra_3136484_18973606.png

    1. Дмитрий (автор)

      Странно. Может, вы задали какие-то фильтры для БД в процессе создания бэкапа.

      1. Vladi

        Нет, все по стандарту. Прикол в том, что делаю все то же самое, те же настройки, те же архивы, но на другой хостинг (другой провайдер) все отлично и с первого раза

        1. Дмитрий (автор)

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

  21. Vladi

    Я скажу просто: «Вот именно так меняется хостинг» )))))
    Дмитрий, Вам отдельное спасибо за статьи! Однозначно в избранное! Я, если что, еще поспрашиваю ;)

    1. Дмитрий (автор)

      Обращайтесь)

  22. law-inside

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

    Нужно ли делать какие-либо изменения в файле wp-config.php ?

  23. law-inside

    Отпишусь как я переносил свой сайт с хостинга на локальный сервер (Open Server) по этой инструкции.

    Ручками сделать это не удалось, но с помощью Duplicator встал отлично.

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

    Duplicator клонирует сайт в пустую, нулевую базу.
    Т.к. я для новой базы не делал нового юзера, то в диалоге Duplocator-а по настройкам базы я ставил пользователя — root, поля для пароля оставлял пустым.

    Протестировал соединение с базой (кнопка там есть).
    Тест прошел нормально.
    Деплой — все ок.

    Спасибо огромное за статью. Вы очень помогли!

    1. Дмитрий (автор)

      Пожалуйста!

  24. Алексей

    Добрый день. У меня такая проблема: «…вы можете запустить инсталляционный скрипт путем перехода к следующему адресу: http://localhost/test-site/install.php. Вы увидите инсталляционный скрипт Duplicator…» Вот после перехода на installer.php, брауйзер выдает набор иероглифов. Где и что нужно поправить, подскажете? Использую OpenServer.

    1. Юрий
  25. Дмитрий

    с помощью дупла не вышло, в ручном уставновил на локалку. Сделал запросы SQL.
    Проблема такая — пытаясь зайти в админку перекидывает на реальную админку на хостинге, а не на локальном серве. То есть что-то меняться будет на работающем сайте. Ничего не понимаю, куда тыкать. И еще поддерживаю вопрос — нужно ли что-то менять в wp-config ?
    Объясните нубу плз

    1. Дмитрий

      все поправил, разобрался.

    2. Юрий

      В корне в wp-config.php указать адрес локального сайта
      define( ‘WP_HOME’, ‘http://новый-адрес-сайта.ru’ );
      define( ‘WP_SITEURL’, ‘http://новый-адрес-сайта.ru’ );

  26. Кирилл

    При создании пакета вылетело куча предупреждений и ошибок. Какой-то пакет на 370 мегов сделал…

  27. Микаил

    Другое дело! вот это полная и понятная статья спасибо автору!

  28. Артем

    Огромное спасибо! Без проблем снял дамп при помощи дупликатора и поднял сайт на Денвере) Теперь можно не боясь экспериментировать с шаблоном и плагинами на localhost.

  29. Ольга

    Напишите а как на open server перенести!

  30. Ольга

    Дмитрий, а не подскажите, есть ли аналог этого плагина, но что бы можно было указать какие директории не бекапить? У меня на сайте nextgen и очень много фотогаллерей, которые можно не бекапить.

    и еще вопрос я пыталась вставить скрипт скопированный у вас и мне выдается ошибка синтаксиса. точнее много ошибок.
    http://tangle.ru/tmp/err.jpg

    1. Бочарик

      Привет Ольга!
      Я не Дмитрий, но по первому вопросу могу посоветовать бесплатный базовый плагин Duplicator, там можно исключать директории

      1. Бочарик
  31. vidaes

    Спасибо, помогло!

  32. Цифровой

    Не совсем то, что я искал, но спасибо

  33. Fktrctq

    Какой-то кривой плагин. Указывает путь к архиву только /docs/wp-snapshots и нигде этот путь не изменить. Что-то там они подурезали…

  34. Андрей

    Спасибо большое, всё получилось

  35. Денис

    Делал всё по инструкции вручную. В результате и на хостинге и на локальном сервере Error establishing a database connection.
    Может подскажите, в чем проблема?

    1. Дмитрий (автор)

      На хостинге? Возможно, где-то не там что-то поправили? Т.к. на хостинге он должен функционировать как и раньше.

  36. Денис

    Да, действительно: накосячил с паролями для базы данных.
    Переделал, но теперь след. проблема: на локальном сервере отображается только хэдер, навигация и футер сайта и всё без css-стилей. При переходе по ссылкам вылетаю на соответствующие страницы на хостинге. URL-адреса внутри базы данных обновлял всеми способами (и как в статье и как в комментариях)… Беда.

    1. Дмитрий (автор)

      Я думаю, вам лучше попробовать заново перенести четко по инструкции. Возможно, при переносе просто что-то пропало или отвалилось. И в таком случае очень трудно будет поправить.

  37. Анатолий

    Благодарю. Все получилось
    База весит 176Мб. Пришлось ставить при помощи скрипта bigdump.php (в нете есть)
    Правда Вы не дописали, что нужно еще подкорректировать файл wp-config для правильных путей и доступов к базе (но понимаю, «Если взялся вручную делать, должен понимать»).

    Еще раз благодарю

  38. Виталий

    Здравствуйте! У меня не получилось перенести сайт выдает ошибку «Ошибка установки соединения с базой данных». Можете помочь?

    1. Дмитрий (автор)

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

      Попытайтесь еще раз все сделать по инструкции. Вы делали через Duplicator?

  39. Рамис

    Сменил версию PHP и все заработало. Спасибо за отзыв

  40. DoggyDog

    Спасибо!!!

Добавить комментарий для Дмитрий Отменить ответ

Получать новые комментарии по электронной почте.