WordPress: переместить Multisite с сервера на localhost

Я пытаюсь переместить развернутый WordPress Multi-Site в локальную среду. Я создал резервную копию базы данных и файлов сервера. В моей локальной среде я создал новую базу данных и импортировал резервную копию. Я также скопировал файлы сервера на свою локальную машину.

Я сделал следующие шаги:

  1. Я изменил wp-config.php и обновил его новым db-name , db-username , db-password и установил define('DOMAIN_CURRENT_SITE', 'www.mysitename.com'); define('DOMAIN_CURRENT_SITE', 'localhost/mysitename'); ,

  2. Я изменил значение option_value в таблице базы данных wp-option, чтобы указать на мой локальный адрес.

  3. Я также удалил эти строки из .htaccess :

     # Redirect non-www urls to www RewriteCond %{HTTP_HOST} !^www\.mysitename\.com RewriteRule (.*) http://www.mysitename.com/$1 [R=301,L] 

Но когда я перехожу к 127.0.0.1/mysitename, я получаю эту ошибку: на этой веб-странице есть цикл перенаправления .

И когда я изменяю define('DOMAIN_CURRENT_SITE', 'localhost/mysitename'); define('DOMAIN_CURRENT_SITE', 'localhost'); и я перехожу к адресу 127.0.0.1/mysitename, он показывает мне страницу phpinfo () .

Как я могу исправить свою проблему?

Пожалуйста, объясните, должен ли я установить что-то в файлах .htaccess и wp-config.php .

Огромное спасибо.

Изменить: недавно пришлось перенести многосайтовый сайт еще раз, и это руководство все еще отлично работает с 01 / 03-2016. Редактирование базы данных очень важно, одна ошибка, и вы либо получаете белый экран смерти, либо ошибку, подключаясь к базе данных, поэтому обратите внимание 🙂

Я не мог понять, чтобы разрешить локальные ссылки с протоколом (http: //), поэтому, если вы видите «(http:) localhost», прочитайте его как http: // localhost /. Если бы кто-то мог отредактировать это для меня, это было бы здорово!

Обычная миграция WordPress:

  1. Резервное копирование базы данных с локального хоста.
  2. Создайте новую базу данных на новом сервере, импортируйте экспортированную базу данных здесь.
  3. Загрузите все файлы WordPress на сервер.
  4. Измените wp-config.php, измените имя базы данных, имя пользователя и пароль. Обычно ниже «define» («WP_DEBUG» .. Я определяю «WP_HOME» и «WP_SITEURL», они переопределяют параметры базы данных WordPress для пути к корню. «DOMAIN_CURRENT_SITE» используется для многоузловых установок. Поэтому, если он не является многопользовательским, Не используйте это, если это многопользовательский режим, просто используйте это, а не WP_HOME и WP_SITEURL.

     define('WP_HOME', 'http://mysitename.com'); define('WP_SITEURL', 'http://mysitename.com'); 
  5. Если вы также загрузили .htaccess из localhost, удалите его с сервера.

  6. Посетите http://mysitename.com/wp-admin , войдите в систему и перейдите к настройкам постоянных ссылок и нажмите «Сохранить», чтобы создать новый .htaccess.

И вы сделали! Не нужно беспокоиться о внесении изменений в базу данных. Для вашей установки localhost просто определите WP_HOME и WP_SITEURL вместо localhost.

Как перенести multisite:

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

  1. Экспортная база данных, как указано выше.
  2. Загрузите новую базу данных, как указано выше.
  3. Добавьте все ваши файлы WordPress, как указано выше.
  4. Измените свой wp-config.php с новой информацией о базе данных, добавьте следующие определения:

     define('MULTISITE', true); define('SUBDOMAIN_INSTALL', false); // true or false depending if the paths for each multisite is pointed by a subdomain. define('DOMAIN_CURRENT_SITE', 'localhost'); // localhost is the DOMAIN of the new location, so even if the ABS_PATH is localhost/whatever, you should have localhost here. define('PATH_CURRENT_SITE', '/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1); 

Вы должны иметь все это в файле wp-config.php сайта, который вы пытаетесь экспортировать, поэтому просто скопируйте их туда и отредактируйте DOMAIN_CURRENT_SITE.

  1. Измените свой htaccess следующим образом (Rewritebase / path / должен быть относительным путем, т. Е. Если ваш сайт находится на localhost / mypage, он должен быть «RewriteBase / mypage /»):

     # MultiSite RewriteEngine On RewriteBase /subfolder-from-localhost/ RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] 
  2. Время редактирования базы данных! Эти шаги необходимо выполнить для каждого дочернего объекта, на котором работает ваш мультисайт, если я набираю таблицу изменений «wp_site», вы должны скопировать ее в wp_site1 / wp_site2 и т. Д. …

В таблице wp_options: измените поля «site_url» и «home» на (http:) localhost / subfolder (без конечной косой черты).

В таблице wp_blogs: измените «domain» на «localhost» и «path» для каждой записи для каждого дочернего сайта в / subfolder / (должен иметь завершающий слэш)

В таблице wp_site: измените «домен» на «localhost» и «путь» на / в подпапку / (должен иметь конечную косую черту)

В таблице wp_sitemeta: измените «siteurl» на полный путь, т. Е. (Http:) localhost / subfolder / (должен иметь завершающую косую черту)

  1. Теперь у вас должен быть доступ к вашей странице, если вы все еще получаете петлю перенаправления или белый экран смерти, дважды проверьте изменения базы данных. Теперь войдите в систему для администратора, и нам нужно изменить некоторые жестко настроенные URL-адреса в базе данных, я обычно делаю это с помощью плагина под названием «Seach and replace», поэтому загрузите и установите этот плагин и используйте его, введя то, что он должен искать ( старый url) и что заменить его (новый url).

     Search for: http://mysitename.com Replace with: (http:)localhost 
  2. Теперь, надеюсь, у вас есть функциональная миграция мультисайта. Как я уже говорил, я сделал это несколько раз, и это почти кажется случайным, если все работает или нет. Я бы сказал, что у меня был успех с этим подходом, возможно, 6 из 8 раз.

Изменить: добавлен способ миграции многопользовательской.

Вы можете следовать руководству по этой ссылке. Его объяснили очень красиво и очень легко понять.

PS для шага 6 я предлагаю вам использовать плагин Velvet Blues WordPress