WordPress как на ладони
Мощный и не дорогой хостинг от Fornex.com

Установка 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
    • отдельный домен. Но для этого нужно устанавливать плагин: WordPress MU Domain Mapping;
  • В MU очень удобно получать данные одного сайта сети на другом сайте и наоборот;

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

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

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

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

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

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

меню

Установка Multisite

Устанавливается MU не сложно - просто!

1. Включаем установку MU

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

define( 'WP_ALLOW_MULTISITE', true );

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

2. Запускаем установку

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

multisite-install2

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

  • Поддомены - каждый сайт сети будет иметь свой домен - поддомен основного домена: 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 (страница главного сайта). Если вашему сайту это не грозит, то режим можно изменить в любой момент, лучше конечно перед установкой MU.

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

define( 'SUBDOMAIN_INSTALL', true ); // поддомены

define( 'SUBDOMAIN_INSTALL', false ); // подкаталоги

Также, нужно будет обновить правила .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_.

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

$wpdb->blogs
Все сайты подсети.
$wpdb->blog_versions
Содержит текущую версию базы данных каждого сайта. Данные обновляются при обновлении БД для каждого сайта сети.
$wpdb->registration_log
Содержит данные администраторов сайтов, которые создаются при создании сайтов.
$wpdb->signups
Содержит пользователей, которые были зарегистрированы через базовую регистрацию WordPress со страницы: Администрация > Супер Админ > Настройки.
$wpdb->site
Содержит, адреса основных сайтов.
$wpdb->sitemeta
Данные сайтов: различные опции, включая администратора сайта.
$wpdb->users
Список пользователей всех сайтов сети. Это общая таблица пользователей для всей сети. Это привычная таблица, только в мультисайт версии добавляются еще 2 поля: spam и delete.
wpdb->usermeta
Содержит мета-данные пользователей. Настройки пользователя для разных сайтов сети отличаются префиксом в индексе ключа. Например роли хранятся в таких метаполях: wp_capabilities, wp_1_capabilities, wp_2_capabilities ...
Базовые таблицы каждого сайта сети
wp_posts, wp_postmeta, wp_options, wp_terms и т.д.. Для каждого сайта сети создаются одинаковые таблицы, но с разным префиксом: wp_options, wp_1_options, wp_2_options ...

-

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

27 комментов
Полезные 5 Вопросы 5 Все
  • Екатерина

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

    2
    Ответить11 мес назад #
    • Indiana

      Для меня это тоже очень актуально.

      2
      Ответить10 мес назад #
  • Дмитрий

    Как в режиме мультисайт сделать регистрацию пользователей не на основном домене сети, а на том сайте на котором он нажал «зарегистрироваться»? Или как убрать редирект на основной домен?

    Ответить11 мес назад #
  • посоветуйте пож-ста, уже есть сайт компании многостраничник. у компанни появились разные департаменты и клиенты хотят чтобы заходя на сайт люди выбирали на какой департамент зайти. у этих департаментов будет разное меню навигация, поэтому я так понимаю что способ "Подкаталоги" не подходит или я ошибаюсь? или все такие создавать отдельные поддомены под каждый департамент а на основном ссылки на них? буду ооочень благодарна всем за помощь!!!

    Ответить6 мес назад #
Здравствуйте, !     Войти . Зарегистрироваться