Почему определение MULTISITE true изменяет используемое подключение к базе данных
Я скопировал мультисайтовую установку WordPress для локальной разработки. Заметил, что если установить define('MULTISITE', true); в wp-config, то возникает стандартная ошибка подключения к базе данных. Если отключить мультисайт, тема загружается, но некоторые плагины отсутствуют.
Может кто-то подсказать, что я упустил? Возможно, имеет значение, что мое локальное окружение использует NGINX, а оригинальный сайт работал на Apache. В моей конфигурации nginx нет специфичных настроек для мультисайта.
Если я установлю оба этих параметра в wp-config:
define('MULTISITE', true); // Включаем режим мультисайта
define('SUBDOMAIN_INSTALL', true); // Используем установку на поддоменах
Меня перенаправляет на http://http//local.mydevsite/wp-signup.php?new=local.mysdevsite
Туда же происходит перенаправление при попытке зайти в /wp-admin

Похоже, это ошибка с URL-адресами, которые определены в мультисайтовой базе данных и/или проблема с файлом .htaccess.
При переносе обычной установки WordPress с продакшена на локальный сервер, например, вы можете изменить URL-адреса, добавив в ваш wp-config.php:
define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');
Однако в мультисайте есть дополнительные ссылки на URL-адреса, с которых он был изначально настроен, в базе данных. Если в вашей локальной базе данных посмотреть таблицы wp_blogs
, wp_site
и wp_options
, там будут записи для продакшен-сайта. Вам нужно изменить их на новый локальный URL, например, с livesite.com на localsite.com.
- В
wp_blogs
это все записи в колонкеdomain
- В
wp_site
это запись в колонкеdomain
- В
wp_options
это значение option_value, соответствующее option_namesiteurl
иhome
Альтернативный вариант для упрощения настройки и минимизации изменений в базе данных: я рекомендую оставить существующие URL-адреса и просто добавить правило в ваш hosts-файл, чтобы перенаправлять их на локальную машину. Например, в hosts можно прописать, чтобы livesite.com
перенаправлялся на 127.0.0.1
. Таким образом, базу данных менять не придется. Недостаток этого подхода в том, что вам придется удалять запись для просмотра продакшена, и некоторых это может запутать. Так что выбор за вами.
Затем нужно убедиться, что ваш .htaccess корректно настроен для мультисайта и перезаписи URL. Эти настройки можно найти здесь в зависимости от того, используете ли вы субдомены или подпапки.
Наконец, убедитесь, что на вашей локальной настройке активен модуль rewrite_module и headers_module (или его эквивалент) на вашем локальном веб-сервере.
