WordPress mu domain mapping как настроить

Установка WordPress Мультисайт

С версии WordPress 3.0 можно создавать сети сайтов, где будет один главный сайт c супер администратором и сколько угодно подсайтов, у каждого из которых свой администратор. Такой режим установки называется Multisite, его еще исторически коротко называют MU (MultiUser).

В этом руководстве показано, как создать сеть сайтов на WordPress, установив WorrdPress в режиме Multisite.

Multisite — это новое название бывшего «WordPress MU», который до версии WordPress 3.0 был плагином, а затем стал частью WordPress.

Особенности Multisite

При установке WordPress в режиме «Мультисайт» все сайты сети будут храниться в единой базе данных, в единой папке на сервере и будут управляться единой установкой (ядром) WordPress. При этом сайтов может быть бесконечно много. Каждый сайт в сети Multisite настраивается отдельно. Однако, плагины, темы и пользователи становятся общими и это удобно.

Особенности и преимущества «Мультисайт»:

В MU: единый движок, одна база данных, общие темы и плагины, общая папка на сервере и поэтому:

  • WordPress обновляется один раз для всей сети сайтов;
  • Плагины и темы устанавливаются один раз для всей сети;
  • Плагины и темы обновляются один раз для всей сети;
  • Плагин может быть активирован для отдельного сайта сети или для всех сайтов сразу;
  • Тема может быть «разрешена» для отдельного сайта сети или для всех сайтов сразу;
  • Если на нескольких сайтах сети используется одна тема, её можно изменять создав дочернюю тему.
Читайте также:  Как настроить эквайринг сбербанк

Единая таблица пользователей в базе данных:

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

Адрес (URL) сайта сети может быть трех видов:

  • Подкаталог — site.ru/site1 .
  • Поддомен — site1.site.ru .
  • Отдельный домен. С версии 4.5 эту возможность внедрили в ядро, подробнее здесь. До этой версии для этого нужно было устанавливать плагин: WordPress MU Domain Mapping.

В MU очень удобно получать данные одного сайта сети на другом сайте и наоборот;

  • Обязательные плагины (mu-plugins) будут работать для всех сайтов сети. Их нельзя отключить для отдельного сайта. При этом их наличие будет видно только в плагинах всей сети, а в плагинах отдельного сайта они спрятаны;
  • Недостатки Multisite:
    • Сеть сайтов сложнее поддерживать — требуется больше знаний и умений.
    • Многие не популярные плагины не умеют работать в этом режиме.
    • Объем базы данных растет с каждым новым сайтом.
    • Ресурсы хостинга будут общие для всех сайтов и нет возможности разделить сайты между разными хостинг-площадками.
    • FTP доступ и доступ к базе данных, также будет общий для всех сайтов. Иногда это может стать проблемой.
    • При обновлении ядра WordPress или плагинов, изменения коснуться всей сети сайтов. Это может вызвать проблемы на некоторых сайтах сети.

    меню

    Когда Multisite может пригодится?

    Чаще всего проще использовать отдельную установку WordPress и не вдаваться в тонкости сети сайтов. Но иногда режим MU может быть незаменим или просто сэкономить кучу времени.

    MU хорошо подойдет в следующих случаях:

    • Когда у вас есть несколько тесно связанных между собой сайтов. Например, у вас есть 3 сайта очень похожие друг на друга: «ремонт ванной», «ремонт гостиной», «ремонт спален» и для каждого из них нужен отдельный домен.
    • MU отлично подходит для создания мультиязычных сайтов;
    • Когда нужна одна учетная запись для авторизации на нескольких сайтах;
    • Когда нужен удобный механизм обмениваться данными между сайтами.

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

    Установка Multisite

    Устанавливается MS не сложно — просто!

    Шаг 1 — Включаем установку Multisite

    Перед запуском первой установки WordPress или после того, как вы уже установили WordPress — не важно. Откройте файл wp-config.php из основной папки WordPress и добавьте туда строчку:

    Добавить строку можно где-нибудь в начале файла, например, перед настройками подключения к БД.

    Шаг 2 — Запускаем установку

    После того как MU установка включена, нужно зайти в админ-панель и перейти в раздел Инструменты > Установка сети

    Теперь надо выбрать какой тип сети устанавливать: поддомены или подкаталоги:

    Поддомены — каждый сайт сети будет иметь свой домен — поддомен основного домена: site1.site.ru , site2.site.ru .
    Для этого режима, нужно будет настроить сервер так, чтобы любой поддомен «смотрел» на папку куда установлен WordPress. Обычно это делается через обращение в службу поддержки вашего хостинг провайдера. Или можете попробовать, в панели управления хостингом, создать поддомен который начинается с * — *.site.ru .

  • Подкаталоги — все сайты сети будут иметь один домен: основной, и будут расположены под ним: site.ru/site1 , site.ru/site2 .
    Для работы этого режима нужно включить поддержку ЧПУ (красивых URL) в разделе: Настройки > Постоянные ссылки .
  • Какой режим выбрать, зависит от задач вашей сети сайтов. Чаще всего лучше выбирать режим поддоменов. С ними меньше проблем в дальнейшем — каждый сайт имеет свой личный домен, а значит нет потенциальных конфликтов URL, также в случае чего сайту можно купить отдельный домен. Режим подкаталогов хорошо подойдет, когда «мультисайт» используется, как единая сеть чего-то целого, например, для создания мультиязычного сайта.

    После нажатия на кнопку «Установить», следуйте инструкциям, там все просто. В них WordPress попросит вас добавить несколько новых строк в файлы: wp-config.php и .htaccess .

    На эту страницу всегда можно попасть по прямой ссылке вида: http://multisite.ru/wp-admin/network/setup.php

    Все, готово! Сеть установлена и вам нужно снова войти на сайт, но теперь как супер-администратор.

    Установка MU на уже рабочий сайт

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

    Далее, деактивируйте все плагины и включите ЧПУ на сайте, если они не включены. Для этого перейдите на страницу админки Настройки > Постоянные ссылки .

    Далее, следуйте инструкциям, которые чуть выше.

    Переключение режимов: поддомены и подкаталоги

    Если сайт существует больше месяца, то при включении установки MU будет доступен только режим поддоменов. Это нужно, чтобы избавить вас от потенциальных конфликтов между страницами и сайтами, например URL под-сайта (блога) может получиться такой же как URL страницы основного сайта: site.ru/superblog (подсайт) и site.ru/superblog (страница главного сайта). Если вашему сайту это не грозит, то режим можно изменить в любой момент.

    Для смены режима измените константу SUBDOMAIN_INSTALL в файле wp-config.php :

    Также, нужно будет обновить правила .htaccess .

    Правильные правила после смены режима, вы найдете на странице адмни-панели: Управление сетью → Настройки → Установка сети . Иногда эта страница может быть скрыта, тогда пройдите по прямой ссылке вида: http://multisite.ru/wp-admin/network/setup.php

    Управление сетью

    При установке MU появляется новая роль «Супер-администратор» и новый раздел «Мои сайты» с вложенным пунктом «Управление сетью» — запомните этот пункт, потому что он основной.

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

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

    Еще немного особенностей для новичков:

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

    Пользователи: супер-админ может создать нового пользователя или прикрепить существующего к указанному сайту.

    Темы: после установки темы, супер-админ может разрешить использование темы для всех сайтов сразу. Или можно перейти в настройки отдельного сайта в разделе «сети сайтов» и разрешить использовать тему только для него.

    Структура сайтов и блогов

    При установке MU появляются 3 новых понятия: сети, сайты и блоги. Чтобы многое стало ясно, давайте посмотрим как хранятся опции каждого типа.

    В WordPress есть четыре похожие друг на друга функции для получения опций:

    1. get_network_option()
    2. get_site_option()
    3. get_blog_option()
    4. get_option()

    Эти функции можно собрать в группы:

    get_network_option() равно get_site_option()
    get_blog_option() равно get_option()

    «Сайты» они же «Сети» в MU

    Это основные сайты (которые по совместительству тоже блоги). Обычно такой основной сайт всего один. У него есть все те же данные что и у любого блога (своя таблица wp_options ). Однако у него также есть свои опции, которые находятся в таблице wp_sitemeta . Именно из wp_sitemeta получают данные функции *_network_option() и *_site_option() .

    get_network_option() — это фундаментальная функция, ей можно указать ID сети (главного сайта) для которой мы хотим получить опции, а get_site_option() — это её обертка и в ней мы не может указать ID сети — там всегда используется текущая сеть.

    Повторюсь, в мультисайт сборке, как правило используется всего один основной сайт (сеть), это значит что в 99% случаев опция get_network_option() равна get_site_option() .

    «Блоги» в MU

    Это сайты, которые находятся под управлением основного сайта (сети). У каждого из таких блогов есть отдельная таблица *_options . get_blog_option() получает данные из этой таблицы. По сути это обертка для функции get_option() , только получает она опции указанного блога, а не текущего.

    Отличия Multisite от обычной установки

    Отличия в файлах

    Файлы загружаются в ту же директорию wp-content/uploads . Более того, ничего не меняется для главного сайта сети. Изменения видны только для доп. сайтов сети: у них файлы загружаются в новую папку wp-content/uploads/sites/2 , где 2 — это ID сайта сети.

    Отличия в таблицах базы данных

    Создается 6 новых таблиц с префиксом главного сайта. Таблицы: users и usermeta становятся общими для всех сайтов сети. Стольные таблицы создаются отдельно для каждого сайта и отличаются они префиксом, например если у главного сайта он был wp_ , то у первого сайта сети он станет wp_1_ .

    Какие дополнительные таблицы создаются:

    wp_blogs Все сайты подсети. wp_blogmeta

    C версии 5.1. Подробнее. Таблица для глобальных опций сайта сети, которые предполагается использовать в сети сайта, а не отдельно на сайте. Отдельные опции сайта нужно хранить в таблице опций отдельного сайта. Не путайте с wp_sitemeta .

    wp_blog_versions Содержит текущую версию базы данных каждого сайта. Данные обновляются при обновлении БД для каждого сайта сети. wp_registration_log Содержит данные администраторов сайтов, которые создаются при создании сайтов. wp_signups Содержит пользователей, которые были зарегистрированы через базовую регистрацию WordPress со страницы: Администрация > Супер Админ > Настройки . wp_site Содержит, адреса основных сайтов. wp_sitemeta Данные сайтов: различные опции, включая администратора сайта. wp_users Список пользователей всех сайтов сети. Это общая таблица пользователей для всей сети. Это привычная таблица, только в мультисайт версии добавляются еще 2 поля: spam и delete . wp_usermeta Содержит мета-данные пользователей. Настройки пользователя для разных сайтов сети. Базовые таблицы каждого сайта сети wp_posts , wp_postmeta , wp_options , wp_terms и т.д.. Для каждого сайта сети создаются одинаковые таблицы, но с разным префиксом: wp_options, wp_1_options, wp_2_options .

    При написании были использованы следующие материалы и личный опыт:

    Источник

    Мультисайт в WordPress

    WordPress Мультисайт – это такой вариант конфигурации WP, который позоляет вам использовать неограниченное количество сайтов в пределах одной-единственной установки WordPress и управлять всеми этими сайтами как суперадминистратор.

    Режим мультисайтовости стал частью ядра WordPress в версии 3.0, раньше это был плагин WordPress Multi-user (MU), и поэтому даже сейчас вы можете встретить название мультисайтовости как WordPress MU.

    Кстати, хочу также порекомендовать вам свой видеокурс по созданию интернет-магазина на WordPress + WooCommerce с нуля и без знаний кода.

    Особенности WordPress Multisite

    Из особенностей можно отметить следующее:

    • Общий WordPress, общая база данных, общие темы и плагины, общие ресурсы сервера.
    • В качестве URL-адресов сайтов сети вы можете использовать либо подпапки site.ru/site1 , либо поддомены site1.site.ru , либо даже независимые домены для каждого сайта!
    • Очень легко и просто добавлять пользователей с одного сайта на другой, при этом у одного и того же пользователя могут быть разные роли на разных сайтах. Это также значит, что у каждого сайта может быть собственный администратор.
    • Вы (как суперадминистратор) даже можете добавить пользователям возможность регистрироваться и создавать свой собственный сайт.
    • Очень удобно то, что обновления устанавливаются и применяются сразу ко всем сайтам сети.
    • Также мне нравится возможность активировать какие-либо плагины как на некоторых сайтах сети, так и принудительно для всех сайтов одновременно.
    • Ну и добавлю по поводу тем — то, что на каждом подсайте можно использовать разные темы, это понятно, но вы также можете использовать и одну тему, индивидуально подстроенную под каждый сайт при помощи дочерных тем.

    Установка сети WordPress Мультисайт

    Шаг 1 – Подготовка

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

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

    • Если вы используете поддиректории, то всё, что вам нужно, это рабочий mod_rewrite (если на сайте вы уже используете постоянные (или как их ещё называют — красивые) URL, то значит, что всё окей.
    • Если вам нужны поддомены, тогда вам потребуется настроенная маска для поддоменов. Настраивается она для каждого домена отдельно.Кроме того, инструкции могут быть индвидуальными для каждого хостинга/сервера. Например на своём хостинге (beget) я просто написал в супорт и сказал им, для какого домена хочу включить маску и мне всё сделали.в cPanel же, насколько я знаю, достаточно создать поддомен, начинающийся со знака * *.вашдомен.ru .

    Также будет не лишним упомянуть, что WordPress уже должен быть установлен.

    Шаг 2 – Настройка wp-config.php

    Откройте конфигурационный файл WordPress wp-config.php , который лежит в корне вашего сайта или на одну директорию выше (для этого может понадобиться подключиться по FTP) и найдите следующую строку:

    В любом месте до этой строки вставьте следующую директиву, которая включает возможность установки режима Multisite:

    Шаг 3 – Деактивируйте все плагины

    Заходим в Плагины и деактивируем (но не удаляем) их все.

    Если вдруг вы пропустите этот шаг, то в следующем шаге вас всё равно попросят это сделать.

    Шаг 4 – Установка сети

    После сохранения файла переходим в админку сайта и видим новый пункт в меню Инструменты > Установка сети.

    После того, как нажимаем кнопку «Установить», попадаем на страницу с пошаговой инструкцией установки:

    Обратите, что если вы выбрали в качестве опции «Поддомены», то возможно, что в следующем шаге вы столкнётесь с ошибкой «Возможно, маска DNS настроена неправильно!», там также будут и инструкции, как её настроить. Если не сможете разобраться сами, то думаю можно написать в супорт хостинга и они вам всё сделают (по крайней мере мне на beget сделали).

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

    Какие фактические отличия от обычного сайта на WordPress?

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

    Какие отличия в админке?

    Вот так выглядит консоль управления сетью и доступ к ней имеется только у суперадминистраторов (это же вы!).

    Как видите, всё очень похоже на стандартную консоль WordPress, нет только пунктов управления контентом, зато появился пункт меню «Сайты».

    Также некоторые плагины будут добавлять свои настройки именно сюда, но большинство — непосредственно в админки подсайтов сети.

    И, как я уже говорил, про администрирования я напишу отдельный пост на следующей неделе.

    Какие отличия в файлах?

    Что касается файлов, то если не считать изменений, которые мы вносили в wp-config.php и в .htaccess (для поддиректорий), остаётся только одно отличие — папка загрузок сайта (обычно wp-content/uploads ).

    Сама папка загрузок используется как есть только для первого созданного сайта сети (основного, с ID 1), затем же в ней создаётся подпапка sites , а в ней в свою очередь ещё подпапки, название каждой — ID сайта, для медиафайлов которого используется.

    Чтобы было более наглядно, вот как это выглядит:

    Какие отличия в базе данных?

    В базе данных тоже нет ничего замысловатого:

    • Добавляется несколько новых таблиц, содержащих информацию о сети и о сайтах в ней, к примеру таблица wp_sitemeta содержит все-все настройки сети (аналог wp_options ).
    • Таблицы стандартной установки WordPress дублируются для каждого подсайта, но с тем условием, что к их (таблиц) префиксам добавляется ещё и ID сайта в сети. Например wp_ , wp_1_ , wp_2_ и так далее.

    Администрирование сети

    В управлении (администрировании) сети WordPress Multisite по сути нет ничего сложного. Но тем не менее люди иногда сталкиваются с трудностями, поэтому в этой, второй части поста про мультисайтовость, я постараюсь рассказать и показать, что к чему.

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

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

    Попасть в неё всегда можно через админ-бар, Мои сайты > Управление сетью > Консоль.

    Добавление сайта

    Переходим в Сайты > Добавить новый.

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

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

    Управление сайтами сети

    Если вы наведёте на какой-либо из сайтов в меню Сайты, то у вас появится список ссылок-действий (для главного сайта кстати доступны только «Изменить», «Консоль», и «Перейти»).

    Тут я пожалуй начну с конца.

    • Кнопка Перейти позволяет открыть главную страницу соответствующего сайта прямо в этой же вкладке.
    • Кнопка Удалить полностью удаляет выбранный сайт без возможности восстановления.
    • Деактивировать, в Архив и Спам — как по мне, так эти три кнопки выполняют абсолютно одно и то же действие, при нажатии на любую из них сайт не удалится, но станет недоступен как для посетителей, так и для пользователей (в том числе) администраторов сайта. Ну почти — администраторы подсайтов смогут видеть свои сайты без доступа в админку в случае, если сайт помечен как спам.Суперадминистраторы же будут иметь доступ в любом случае, как будто никакая кнопка и не нажималась.Также любое из этих трёх действий в любой момент можно отменить и сайт будет доступен как обычно.
    • C Консолью я думаю понятно — при нажатии вы переходите в админку конкретного сайта.
    • И последнее, кнопка Изменить. При нажатии на неё, у вас откроется страница с четырьмя вкладками настроек.

    Думаю тут особых комментариев не нужно, вкладки «Пользователи» и «Темы» будут рассмотрены дальше по ходу поста.

    Что касается вкладки «Настройки», то она просто содержит практически все опции (настройки) каждого сайта в простом виде — название настройки в базе данных и текстовое значение (массивы тут не поддерживаются и не доступны для редактирования). Будьте осторожны с настройками там и не меняйте то, в чём не уверены.

    Добавление пользователя. Суперадминистратор

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

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

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

    В консоли сети переходим в Сайты > Все сайты, выбираем нужный, наводим на него мышкой, жмём ссылку «Изменить» и на открывшейся странице переходим на вторую вкладку — Пользователи.

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

    Особенности установки плагинов и тем на WordPress Multisite

    У администрирования плагинов и тем в сети WordPress Multisite существует одно принципиальное различие, поэтому предлагаю прочитать эту главу внимательно.

    Когда через консоль сети вы устанавливаете/загружаете тему, то сначала она недоступна для использования на сайтах сети. Вы сразу же можете нажать Разрешить для сети — тогда тема сразу станет доступна для использования на всех сайтах.

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

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

    Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

    Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!

    Источник

    Оцените статью