WordPress как на ладони

WordPress Multisite Multi-Network

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

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

Тут есть свои плюсы и минусы:

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

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

Перед тем, как начать...

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

  • Во-первых, ваши сети имеют общую физическую установку WordPress и базу данных, но работают как независимые сети Multisite. Т.е. каждый мультисайт, работающий под управлением мультисети, является полным мультисайтом. Вы должны получить доступ к панели администратора сети в каждой созданной вами сети и настроить параметры сети, одинаковые для каждого блога/сайта.

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

В какой-то момент вам придется узнать о шардинге БД - это не ракетостроение, но это более сложная задача, которая выходит за рамки данной статьи. Для планирования и реализации DB Sharding вам, вероятно, придется обратится к DevOps специалисту.

Если вы начнете разбираться в базе данных Multisite, вы поймете, что для всех блогов/сайтов используется один и тот же site_id=1, расположенный в таблице базы данных, заканчивающейся на _blogs. Каждый блог/сайт будет иметь уникальный blog_id, но все они находятся под одним site_id=1. Вы также заметите таблицу базы данных, заканчивающуюся на _site. Именно сюда мультисеть записывает уникальный site_id для каждой новой созданной вами сети Multisite.

Терминология WordPress здесь немного запутана:

  • SiteID - это на самом деле ID сети - сайта, который является сайтом сети Multisite.
  • BlogID - относится к любому блогу/сайту в сети. Один из блогов сети, всегда является сайтом самой сети (самой сетью).

Еще одна фитча: мультисеть позволяет вам перемещать любой блог/сайт из любой из ваших сетей Multisite в любую другую сеть, работающую в той же мульти-сети - и все это с минимальными действиями. Ниже мы рассмотрим этот момент.

Начало работы с Multi-Network в WordPress

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

После того, как вы установили сеть Multisite, можно настроить мульти-сеть! Включить ее очень просто - в WordPress есть несколько отличных плагинов, которые помогут вам в этом: WP Multi Network, разработанный John James Jacoby, который является идейным вдохновителем существования мультисети в ядре WordPress. Джон объясняет, как работает мультисеть в этом видео:

http://wordpress.tv/2014/07/26/john-james-jacoby-multisite-and-multi-network/

Итак, давайте приступим к настройке мультисети:

  1. Перейдите в панель администратора сети Multisite.

  2. На боковой панели выберите Плагины > Добавить новый (Plugins > Add New).

  3. Нажмите на поле Поиск плагинов (Search Plugins) в правом верхнем углу и введите "WP Multi Network".

    Плагин WP Multi Network можно бесплатно скачать на сайте WordPress.org
  4. Нажмите Установить (Install Now) и после установки плагина нажмите Активировать для сети (Network Activate).

    Просто активируйте плагин в сети, и вы готовы приступить к настройке вашей мультисети.
  5. Теперь вы должны увидеть панель Сети (Networks) самый первый элемент меню в панели администратора сети.

    Настройка мультисети.
  6. Для того, чтобы мультисеть заработала, вам необходимо внести некоторые изменения в файл wp-config.php. Откройте файл конфига wp-config.php и закомментируйте такую строку:

    define( 'DOMAIN_CURRENT_SITE', 'yoursite.com' );

Поздравляем! Теперь вы работаете в многосетевом режиме!

Войдите в свою сеть и перейдите в панель администратора сети. Теперь вы можете начать добавлять и управлять сетями (или мультисайтами) в вашей сети.

Настройка сопоставления доменов в Multi-Network

Плагин WP Multi Network управляет сетями, которые вы создаете. Это означает, что вы можете создать целую сеть как подкаталог вашей основной сети (сети Multisite, которую вы создали первой). Или вы можете выбрать отдельный домен для каждой сети (или Multisite) в вашей мультисети. Обо всем этом позаботится плагин WP Multi Network.

Вы сможете привязать домены к любому дочернему блогу/сайту в любой из ваших сетей, используя этот мануал Ultimate WordPress Multisite Domain Mapping Guide. Если вы решите привязать домены к другим сетям или блогам/сайтам, каждый домен должен быть настроен на физический IP вашей сети или директорию public_html.

Это делается с помощью панели управления доменом, предоставляемой вашей хостинг-компанией, обычно cPanel. Если вы используете cPanel, вам нужно будет добавить ваши домены как псевдонимы (или запаркованные домены) или дополнительные домены (в зависимости от вашего хостинг-плана), и указать каждый из них на один и тот же каталог вашей установки WordPress. Обычно это public_html, но в зависимости от настроек вашего хостинга название каталога может отличаться.

Добавление доменов в вашу сеть.

Если вы используете DNS Made Easy или другой инструмент DNS, вам нужно будет добавить запись ANAME для каждого домена, который вы хотите привязать к своей сети, указывая на тот же физический IP вашего WordPress Multisite. После этого и ожидания распространения изменений DNS (это может занять некоторое время), ваши домены будут перенаправлены в тот же каталог (cPanel) или IP (DNS Made Easy).

Я зарегистрировал два домена, которые я буду использовать для этой установки. Каждый домен имеет активный SSL - нам нужен SSL для каждого домена (или мультидоменный SSL, охватывающий их все):

  • https://awpmu.cloud/ - это будет главная (или ведущая) сеть.

  • https://lwpmu.cloud/ - это будет дочерняя (или ведомая) сеть.

Я собираюсь организовать свою главную сеть следующим образом:

  • Главная мультисеть - Мультисайт AWPMU.

  • Адрес главной сети - https://awpmu.cloud/

  • Главный многосайтовый сайт - AWPMU Network - Главный сайт (теглайн)

Далее я собираюсь создать дочернюю сеть (или Multisite) таким образом:

  • Детский мультисайт - LWPMU Network

  • Адрес дочерней сети - https://lwpmu.cloud/

  • Детский многосайтовый сайт - LWPMU Network - Главный сайт (теглайн)

Я также создам дочерний блог под каждым мультисайтом:

  • Main Multisite Child-Blog - https://awpmu.cloud/blog01/ - Blog 01

  • Child Multisite Child-Blog- https://lwpmu.cloud/blog02/ - Блог 02

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

  • Master Multisite Child-Blog - https://awpmu.cloud/blog02/ - Blog 02

  • Slave Multisite Child-Blog - https://lwpmu.cloud/blog01/ - Блог 01

Создание сети

Создать новую сеть очень просто. Это делается так:

  1. Зайдите в панель администрирования вашей сети Multisite и нажмите на первый пункт меню, то есть на иконку Сети (Networks), созданную плагином WP Multi Network. В левом верхнем углу нажмите Добавить новую (Add New). Заполните необходимые поля.

    Добавление сети в вашу мульти-сеть.
  2. Введите название сети. Это имя вашего нового мультисайта.

  3. Введите домен, который вы смапили в cPanel или панели управления доменом в предыдущих шагах этого руководства. Можно использовать основной домен с додбавлением пути, если не хотите привязывать другой домен к новому сайту Multisite.

  4. Введите имя сайта, т.е. имя для вашего нового основного сайта Сети.

  5. Введите путь. Используйте эту опцию, только если вы хотите, чтобы ваша новая сеть находилась в подкаталоге исходной (основной) сети или в подкаталоге любого другого домена, уже привязанного к тому же каталогу public_html (cPanel) или другой панели управления.

    Добавление Сети
  6. Нажмите Создать (Create). Затем вы будете перенаправлены на страницу Сети (Networks) в панели администратора вашей сети.

    Две сети в мульти-сетях

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

  7. Зайдите в PHPMyAdmin, и вы обнаружите кучу новых таблиц в базе данных. Проверьте таблицу базы данных, заканчивающуюся на _site, и вы увидите наш новый Multisite с id=2, а в таблице базы данных, заканчивающейся на _blogs, вы увидите новый сайт с blog_id=2, и site_id=2.

    Сайты в сетях
    Блоги в мультисайтах (в сетях)
  8. Прежде чем мы начнем что-либо делать на нашем новом дочернем мультисайте, давайте сначала создадим дочерний блог на исходном мультисайте (site_id=1, AWPMU Multi Network в мультисети). Перейдите в Sites на боковой панели в админке вашей основной сети и создайте новый сайт. Вы увидите там основной сайт мультисети. В моем случае это awpmu.cloud).

    Новый дочерний блог на основном многосетевом сайте.

Создание Блога/Сайта

Если вы уже используете WordPress Multisite, вы уже знаете, что создать новый блог/сайт довольно просто, но давайте все равно пройдемся по шагам:

Шаг 1: В администраторе вашей сети перейдите в Сайты > Добавить новый (Sites > Add New) и введите данные для вашего нового дочернего блога/сайта. Когда вы закончите, нажмите Добавить сайт (Add Site).

Добавление блога

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

Сайты/блоги в сети мультисайт

Выглядит хорошо!

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

Блоги в многосетевой базе данных.

Вы увидите там новый дочерний блог/сайт: он использует blog_id=3 и site_id=1, поскольку находится в AWPMU Network/Multisite. Перейдите в панель администратора дочерней сети LWPMU Multisite, чтобы создать новый дочерний блог/сайт. Когда вы войдете в "дочерний" Multisite в первый раз, вам будет предложено обновить сеть, поэтому сделайте это, прежде чем продолжить.

Повторите шаг 1, чтобы создать Блог 02 в дочерней сети site_id=2.

Затем перейдите в раздел Sites в панели администратора сети LWPMU и убедитесь, что новый дочерний блог находится там.

Проверить дочерний блог можно здесь.

Далее, давайте еще раз посмотрим на PHPMyAdmin. Вы заметите несколько новых таблиц, заканчивающихся на 2, 3 и 4 (для недавно созданного мультисайта и обоих дочерних блогов/сайтов, которые мы создали (по одному для каждой сети/мультисайта). Новый дочерний блог/сайт имеет blog_id=4 и site_id=2 в таблице базы данных, заканчивающейся на _blogs . Это означает, что он находится под нашим дочерним мультисайтом, в моем случае он называется LWPMU Network.

Проверка дочернего блога/сайта в многосетевой базе данных.

Перемещение блога/сайта из одной сети в другую

Теперь давайте рассмотрим перемещение блогов/сайтов между сетями в рамках общей мульти-сети.

  1. Зайдите в панель администратора дочерней сети Multisite. На моей установке она расположена по адресу https://lwpmu.cloud/wp-admin/network/.

  2. Нажмите на Сайты (Sites), затем наведите курсор на /blog02 Child-blog/. В правом крайнем углу появится команда Переместить (Move). Нажмите на нее.

    При наведении курсора на ваши сайты появятся дополнительные опции.
  3. Нажмите на выпадающее меню и выберите https://awpmu.cloud/ в качестве новой сети для этого блога/сайта.

    Выберите новую сеть для этого блога/сайта.
  4. Затем нажмите Переместить (Move), чтобы выполнить перемещение.

    Вы увидите, что Блог 02 исчез со страницы Сайты. Вы также можете проверить сообщение в верхней части приборной панели, подтверждающее, что блог/сайт был перемещен.

  5. Перейдите в основную панель администратора сети Multisite. На моей установке она находится по адресу https://awpmu.cloud/wp-admin/network/.

  6. Нажмите на Сайты (Sites). Вы увидите, что Блог 02 теперь там. Вы также увидите, что он все еще находится под https://lwpmu.cloud/blog02, но мы хотим, чтобы он находился в домене AWPMU. Наведите на него курсор мыши и нажмите Редактировать (Edit).
Перемещение блога/сайта на домен, который мы хотим использовать.
  1. Измените Адрес сайта (URL) с lwpmu.cloud на awpmu.cloud, затем нажмите Сохранить изменения (Save Changes).
Обновление адреса сайта.
  1. Снова нажмите на Сайты в боковой панели и проверьте новый адрес.
Проверьте, что блог/сайт теперь использует правильный адрес сайта.
  1. Теперь снова откройте PHPMyAdmin и найдите таблицу базы данных, заканчивающуюся на *_blogs. Проверьте новый site_id для blog02. Это подтверждает, что blog01 и blog02 теперь работают под AWPMU Multisite - у обоих блогов site_id=1.
Теперь оба блога работают под управлением основного/главного мультисайта AWPMU.
  1. Теперь давайте перенесем наш Блог 01 из мультисети AWPMU в сеть LWPMU. Повторите шаги с 1 по 9 выше. Затем перейдите на панель администратора дочерней сети Multisite, нажмите на Sites, и отредактируйте Blog 01 так, чтобы он работал под LWPMU. Проверьте PHPMyAdmin и вы снова увидите, что Блог 01 теперь работает под lwpmu.cloud (site_id=2).
Все работает, как и ожидалось!

Заключение

Теперь вы можете использовать новые функции ВП в режиме мульти сети.

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

Если у вас есть опыт работы с мульти-сетями, делитесь им в комментариях.

Видео

https://wordpress.tv/2014/07/26/john-james-jacoby-multisite-and-multi-network/

--

Источник: https://wpmudev.com/blog/wordpress-multi-network/

  • DevOps team roles

    Key DevOps team roles and responsibilities for success

    www.globalcloudteam.com

1 комментарий
    Войти