Перенос WordPress с локального сервера к клиенту, проблема и решение

Представим ситуацию. Вам заказали сделать сайт на WordPress, однако название домена вам не известно. Сайт готов, вы передаете его клиенту.

Через некоторое время клиент обращается к вам с проблемой: мол, файлы залил, базу поставил, но не работает. Знакома ситуация? И вы даже знаете почему так произошло? Подождите, читайте дальше.

Как известно, все настройки сайта на WordPress хранятся в базе данных. Когда Вы делали сайт на локальном сервере, то все пути были построены относительно локального доменного имени (по умолчанию установлено как http://wordpress). Поэтому когда клиент установил сайт на своем хостинге, то даже не смог зайти в админку, ведь пути сайта в базе и на хостинге отличаются. Как быть в такой ситуации?

Прощупав обстановку выясняется, что, чтобы все наладить, надо иметь доступ к базе и исправить путь к сайту в таблице wp_options, а также пути к каждой (!) статье в таблице wp_posts. Хорошо, если статей еще нет или их мало. А если их, например, 100? Надо исправлять путь в каждой статье.

К счастью, есть простое и элегантное решение. Пользуясь им, вам вообще не надо думать о домене клиента.

Достаточно вставить в файл wp-config.php вот эти строчки:

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

Вуаля, проблема решена! 🙂

29 комментариев на «“Перенос WordPress с локального сервера к клиенту, проблема и решение”»

  1. Перед переносом зайти в настройки и вбить там урл будущего сайта. Это если со всеми плугами переносить и т.п. А так можно просто записи в хмл экспортировать + архив с темой.

  2. Это способ хорош своей универсальностью, так как достаточно вставить эти 2 строчки и можно свободно переносить WordPress на любой домен. Никаких дополнительных правок или настроек не требуется.

  3. Спасибо за полезный совет, очень сократит время при переносе.

  4. Спасибо, очень помогли. Действительно очень удобный, и как вы пишите «элегантный» способ.

  5. Все равно не открывается ничего, буду копать дальше

  6. alexx:

    ДАЙТЕ Я ВАС РАСЦЕЛУЮ!!!!
    3 дня парился незнал как заставить менять вордпресс адреса относительно того на какую сетевуху из двух на сервере я зашел.

  7. VRS:

    А если в постах путь у картинок прописан на локальном сервере, Ваше решение сработает? при переносе на реальный сервер они будут отображаться?

    • Да, сработает, но имейте ввиду что это больше скорая помощь, чем стандартное решение

      • VRS:

        Спасибо за оперативный ответ :), добавила Ваш сайт в закладки.
        Какое же стандартное решение лучше? Я уже столько инфы перечитала по переносу с локалки на хостинг, что запуталась…

        • Я в таких случаях делаю просто: открываю дамп базы в текстовом редакторе и автозаменой прохожу по всем путям. Может это не лучший способ, но он работает. Только надо внимательно смотреть что автозаменяешь, чтобы не затереть лишнего.

  8. Maks:

    второй на очереди расцеловать )))
    Спасибо большое, долго мучался, пока не нашёл вашу страничку!

  9. спасибо за совет.

  10. Класс сейчас буду пробовать. Пожелайте удачи!

  11. compman:

    Спасибо, выручил!!!

  12. Новичок:

    Здрастье! а куда именно вставлять строки? открыть в Нотпаде файл конфиг и тупо перекопировать эти строки куда угодно?!

    • Neolot:

      Куда угодно, но лучше до строки:
      /* That's all, stop editing! Happy blogging. */

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

  14. nick:

    Пасиб) реально выручил!

  15. Сергей:

    Огромное спасибо! Помогло не перелопачивать базу в txt!

  16. добавил строчки. нажимаю на ссылки, выдается сообщение не создан wp-config.php? в чем может быть причина? подскажите п-та.

  17. Столкнулся с этой проблемой в обратном процессе — клонирование репозитория с боя на локльный сервер.

    Спасибо!

  18. Столкнулся с этой проблемой в обратном процессе — клонирование репозитория с боя на локльный сервер.

    Спасибо!

  19. Анна:

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

  20. Анна:

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

  21. xck:

    Привет, мне решение не помогло (( изменил адрес сайта в таблице базы (wb_options > siteurl)

  22. Алексей:

    строки в wp-config.php
    define(‘WP_HOME’, ‘http://’.$_SERVER[‘HTTP_HOST’]);
    define(‘WP_SITEURL’, ‘http://’.$_SERVER[‘HTTP_HOST’]);

    не помогают, правлю руками адреса постов

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

      • Алексей:

        я всё поправил. грузятся посты, админка, но главная страница все-равно не хочет, каким-то образом запомнила номер порта (http://127.0.0.1:4000/wordpress/), нестандартного, который у меня был раньше, а теперь порт стандартный 80.
        я вроде бы везде адреса поправил, в админке в Settings, в базе данных в wp_options и wp_posts в каждом посте.
        но главная страница wordpress все-равно не грузится. где ещё мог не исправить?

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