Мультисайты в WordPress: раскрываем всю мощь сетей

Дата публикации:Март 21, 2013

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

Нет, я не преувеличиваю. В качестве примера вы можете обратиться к сайтам WordPress.com или Edublogs.org. Все они содержат в себе миллионы разных сайтов. И все они используют мультисайты для реализации данной возможности.

Введение в мультисайты

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

В этой статье мы постараемся показать вам, в каких случаях мультисайты могут показаться полезным и верным решением.

Что же такое мультисайт?

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

Примечание: с помощью специальных решений, таких как Pro Sites, можно ограничивать доступ к плагинам и темам в сети.

Различные сайты в сети

Различные сайты в сети

Все сайты совместно используют одну базу данных; однако в этой базе данных все они имеют отдельные таблицы. Также у каждого сайта есть свой собственный каталог для загрузки медиафайлов.

Зачем могут понадобиться мультисайты?

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

1. Размещение различных пользовательских сайтов.

Подключение мультисайтов позволяет посетителям регистрировать в системе свои собственные блоги/сайты, как это реализовано на wordpress.com и edublogs.org.

Мультисайты позволяют людям автоматически создавать новый сайт без участия администратора. Чаще всего новые блоги получают URL-адрес следующего вида:

  • site1.mysite.com
  • mysite.com/site1/

Разница между ними объясняется разницей между установкой сайтов в виде подпапок и поддоменов (об этом позднее).

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

2. Размещение внутренней сети сайтов.

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

В каких случаях сеть мультисайтов может оказаться идеальной:

  • Различные отделы в компании;
  • Различные команды в лиге;
  • Различные города в стране;
  • Различные концерты в клубе;
  • Различные шоу на радиостанции.

Подходят ли вам мультисайты?

Учитывая все те «различные» пункты, представленные выше, вы должны задать себе важный вопрос: «Надо ли мне, чтобы все эти разделы/сайты были раздельными?»

Другими словами, можно ли достигнуть той же самой цели путем простого использования рубрик в обычной сборке WordPress?

Если на какие-либо из перечисленных ниже пунктов вы можете ответить «Да!», то мультисайты, возможно, подойдут вам:

  • Нужны ли мне разные темы на одном сайте?
  • Нужны ли мне разные плагины/разная функциональность для различных разделов?
  • Должен ли я дать доступ разным администраторам/редакторам для разных секций?
  • Нужны ли мне разные адреса верхнего уровня?

Когда не стоит использовать мультисайты

Есть некоторые ситуации, когда от использования мультисайтов лучше отказаться:

  • Можно обойтись обычными рубриками;
  • Вам требуются разные базы данных для пользователей (к примеру, из соображений безопасности);
  • Пользователи должны устанавливать свои собственные темы или плагины.

Некоторые также считают, что мультисайты не требуются для запуска небольших клиентских сайтов. Если задать им вопрос, почему они так думают, то можно услышать простой ответ – «так будет проще». То есть, они имеют в виду, что вы можете быстро переместить свой сайт в любое место в случае необходимости, поскольку у вас есть отдельные базы данных в пределах одной сборки.

Импорт/экспорт сайтов

Вы можете «вытащить» сайт из сети с помощью родной функции Импорт/Экспорт в WP. Если вы хотите взять какой-нибудь один сайт из сети и превратить его в отдельную сборку, сделайте следующее:

  • Установите новую сборку системы
  • Экспортируйте контент сетевого сайта с помощью функции Export
  • Импортируйте контент сайта в новую сборку

В кодексе также есть страница о миграции нескольких мультисайтовых блогов.

Преимущества и недостатки

В предыдущих разделах мы уже затронули некоторые преимущества и недостатки мультисайтов. Давайте перечислим их здесь в виде списков.

Преимущества:

  • Автоматическое создание сайтов/блогов для каждого пользователя
  • Автоматическое создание блога для ограниченной группы пользователей – ограничение по email или ограничение с помощью специального кода (для этого понадобится плагин).
  • Неограниченное создание сайтов для одного пользователя
  • Ограничение на создание сайтов для одного пользователя (с помощью плагинов).
  • Ограничение размера загружаемых файлов (или неограниченные загрузки)
  • Разные темы для разных участков сайта
  • Изменения в теме касаются всех сайтов, которые используют эту тему
  • Пользователи всегда могут использовать виджеты, меню, заголовки и бэкграунд на своих сайтах, вне зависимости от темы (для ограничения этого используются плагины)
  • Пользователи могут создавать сразу несколько сайтов и управлять ими (с помощью плагинов можно ограничивать данное действие: к примеру, один пользователь может создавать только один сайт)
  • Сайты могут быть либо полностью обособленными, либо интегрированными друг с другом разными способами.
  • Активация тем в зависимости от используемых сайтов

Недостатки:

  • Администратор должен иметь некоторые навыки управления сетью сайтов (есть небольшие отличия с управлением обычным сайтом на WP)
  • Необходим доступ к серверу для редактирования базовых файлов WP
  • Некоторые темы плохо работают с мультисайтами (большая часть поддерживает, но не все)
  • Некоторые плагины плохо работают с мультисайтами (как и в случае с темами)
  • Если у вас появятся проблемы с основной сборкой или ваш главный сайт будет взломан, это может затронуть все сайты вашей сети.
  • Могут возникнуть трудности при отображении контента с разных сайтов на главной странице основного сайта (решается с помощью плагинов).

Разница с обычной сборкой WordPress

Супер администратор

Одно из ключевых отличий – новая роль под названием «Супер Администратор» (Super Admin). Супер администратор управляет всей сетью сайтов. Вы выбираете, какие плагины и темы будут доступны пользователям, могут ли посетители регистрировать свои сайты безо всяких ограничений и т.д.

Супер Администратор имеет доступ ко всей сети

Супер Администратор имеет доступ ко всей сети

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

Настройка доступа

Вы всегда можете задавать доступ к сайтам в сети. К примеру, нужна ли вам открытая регистрация? Если так, то вам понадобится, скорее всего, изучить плагины, которые позволяют избежать создания так называемых спам-блогов (сплогов).

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

Управление темами и плагинами

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

Вы можете задавать свои темы отдельно для каждого сайта. К примеру, некоторым сайтам можно дать на выбор несколько тем, а другим предоставить только одну тему.

Настройка тем для каждого сайта отдельно

Настройка тем для каждого сайта отдельно

Администратор в обычной сборке WP – это не то же самое, что Супер Администратор в мультисайтовой сборке. Если вы до сих пор не освоились с администраторскими полномочиями в WP, лучше пока не переходить на мультисайты.

BuddyPress

BuddyPress – это мощный плагин, который позволяет создавать полностью сформированную социальную сеть для пользователей вашего сайта. Многие ресурсы, которые используют мультисайты, одновременно с этим используют и BuddyPress (хотя это и не является необходимостью).

Безусловно, все зависит от ваших целей. Если вы хотите связать всех пользователей в вашей сети, BuddyPress может оказаться полезным.

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

Активация мультисайтов

Наконец, мы рассмотрим, как активировать мультисайты.

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

Перед тем, как перейти к самому процессу активации, вам необходимо выбрать, как именно вы будете устанавливать новые сайты – как подпапки или как поддомены.

Подпапки и поддомены

Подпапки имеют следующий вид:

  • mysite.com/site1
  • mysite.com/site2

Поддомены:

  • site1.mysite.com
  • site2.mysite.com

В некоторых ситуациях у вас просто не будет выбора. К примеру, если сайт уже установлен в подпапку, и вы попытаетесь активировать для него мультисайты, то вы не сможете использовать поддомены. У вас останется только вариант с подпапками.

К примеру, ваш сайт «mysite» расположен следующим образом:

  • example.com/mysite/

Все ваши новые сайты будут добавляться в дополнительные подпапки:

  • example.com/mysite/site1/
  • example.com/mysite/site2/

При попытке установить свои сайты как поддомены (к примеру, site1.mysite.com) некоторые пользователи могут столкнуться с проблемами, связанными с сервером. Обычно это решается обращением в службу поддержки. Если же проблема не была решена, остается только использовать подпапки.

Что лучше?

Это выбор каждого. Если вы хотите создать публичный сайт блоггинга, такой как wordpress.com, то лучше, конечно, использовать поддомены. Они более привлекательны для пользователей.

Раньше, в старые времена SEO, подпапки больше нравились поисковым системам, чем поддомены (однако как сейчас с этим обстоят дела, я не знаю).

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

Domain Mapping

С помощью плагина Domain Mapping вы можете сделать так, чтобы ваш сайт1 или сайт2 выглядел как обычная сборка WordPress.

К примеру, mysite.com/site1/ или site1.mysite.com можно выводить как домен site1.com. Никто никогда не узнает разницы.

Даже пользователи в области администратора не будут знать, что они находятся в мультисайтовой сети, если вы не захотите этого. Их панель администратора появится по ссылке site1.com/wp-admin/.

Переключение к мультисайтам

Активация мультисайтов – не такая сложная задача. Правда, она состоит из большего числа действий, чем просто пара щелчков. Вам понадобится доступ к основным файлам WP на вашем сервере.

Инструкцию по созданию мультисайтов в WP вы можете найти в кодексе.

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

Также полное руководство по созданию мультисайтов есть в журнале OddStyle №2.

Источник: wpmu.org

Поделиться

41 комментарий

  1. AlexS says:

    Интересный проект,

    А как насчет кеширования WPMU+BP? Можете что-то рассказать про это?

    • Architect Of Ruin says:

      Для мультисайтов с BP удобно использовать плагины кэширования Quick Cache и WP Super Cache. Плагин W3 Total Cache хорош, но его нельзя активировать во всей сети сразу (надо, чтобы каждый владелец блога активировал его). Первые два могут быть активированы только для всей сети сразу, что в разы удобнее. Quick Cache имеет больше разных настроек и вообще представляется самым удобным в данном контексте.

  2. AlexS says:

    Большое спасибо за рекомендации.
    Попробовал Quick Cache и мне кажется он отлично работает. Мгновенный отклик как в Drupal и диаграмма нагрузки минимальная.
    С WP Super Cache не совсем разобрался. А что вы скажете о hyper cache?

    И ещё пару специфичных вопросов. Какой лимит php памяти рекомендуется? Стоит ли использовать сжатие на стороне сервера?

    • Architect Of Ruin says:

      Hyper Cache тоже дает неплохую производительность, но, имхо, лучше Quick Cache не найдете.

      Мультисайтам минимально нужно 64MB памяти, следовательно, этого лимита вполне должно хватить. Можно включить GZIP сжатие для мультисайтов. В WP есть даже плагин — http://wordpress.org/plugins/wordpress-gzip-compression/, правда, давно не обновлявшийся.

  3. uni says:

    64 Мб… Хм а если мультисайтов будет около сотни? как это скажется на производительности?

    • Architect Of Ruin says:

      Чем больше памяти будет выделено, тем лучше. 64Мб — всего лишь минималка, которая требуется для стабильной работы. Но с возрастанием числа сайтов понадобится больше памяти. Про сотню ничего не могу сказать — вполне возможно, что 64 Мб хватит.

  4. Рост says:

    Добрый день!

    Некоторое время назад мы уже общались по поводу применения мультсайтовости для wordpress. Как ни странно, но более старые версии wordpress легко поддерживали использование разных тем для каждой отдельной копии WordPress. Сейчас же, при активации мультисайта воспользоваться функцией активации тем для каждой отдельной единицы не представляется возможным. Более того, в списке активных тем остается лишь одна тема, которая была предустановлена до момента активации мультисайта. Есть ли возможность побороть это?
    Может плагины? Или остаются только «кривые» способы… Отключить мультисайт через config, включить нужную тему, после чего подключить вновь? Как быть?
    Может знаете готовое решение?

    • Architect Of Ruin says:

      Хм, не сталкивался с таким. Может быть, у вас какой-то локальный глюк? По идее все должно работать как полагается, без каких-либо проблем, и активация тем должна проходить в штатном режиме для каждого отдельного сайта сети.

  5. AlexS says:

    По моему все нормально.

  6. uglion says:

    Здравствуйте. Пытаюсь разобраться с мультисайтовостью. Решено использовать поддомены. Все шаги прошёл, только вот blogs.dir сразу не создал. К этому моменту уже зарегистрировал поддомен. При переходе на него появляется «Not Found

    The requested URL / was not found on this server.»

    В админке все настройки данного поддомена спокойно редактируются, как будто всё в порядке.

    Создал папку blogs.dir в wp-content/ права выставил 755. Создаю новый поддомен — папка остаётся пустой, при заходе на поддомен — not found.

    Где то я туплю, да? :)

    • Дмитрий Алёшин says:

      Обычно такая проблема происходит из-за неверной конфигурации .htaccess. Нужно проверить данный файл и посмотреть, все ли там задано правильно.

  7. uglion says:

    Ну там то, что сказал написать сам вордпресс. И это очень похоже на то, что в качестве примера показано в кодексе:

    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ — [L]

    # add a trailing slash to /wp-admin
    RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ — [L]
    RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
    RewriteRule ^(.*\.php)$ $1 [L]
    RewriteRule . index.php [L]

    # END WordPress

    • Дмитрий Алёшин says:

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

  8. uglion says:

    Спасибо за помощь! Мир не без добрых людей. :) Нашлось много желающих помочь и в итоге это удалось технической поддержке моего хостинга. Оказалось, что ISP панели не нужно устанавливать автоподдомены. Такой вот нонсенс. Отключили автоподдомены и всё заработало.

  9. uglion says:

    Хотелось бы поподробнее про настройку Domain Mapping и самих доменов. У меня возникли трудности с добавлением CNAME. Вот у меня есть мультисайт blogstop.ru. В Domain Mapping я вписал адрес сервера, затем надо в панели регистратора домена прописать этот самый CNAME. Запись требуется такого вида:

    _______________IN CNAME_______________

    Непонятно первое поле для ввода. Допустим, на мультисайте есть поддомен uglion.blogstop.ru. Для подключения домена второго уровня я в панели регистратора я должен заполнить таким образом: uglion IN CNAME blogstop.ru?

    Там есть пример, но я из него ничего не понял.
    ______________________________________________

    Пример:
    www IN CNAME google.com.
    some IN CNAME google.com.

    В данном примере субдомены www и some сделаны псевдонимами сайта google.com, таким образом содержимое http://www.site.com и some.site.com будет идентично google.com.

    Записи CNAME можно создавать только для субдоменов, т.е. запись вида ‘@ IN CNAME site.com.’ создавать нельзя, поскольку сам домен не может быть псевдонимом другого домена.
    _____________________________________________

  10. Даня says:

    Добрый день!
    У меня есть сайт на русском языке l-crete.ru я создал мультисайтовость и вот столкнулся с такой проблемкой, на английском сайте l-create.ru/en если добавляю на сайт меню, то все страницы идут а разнобой и независимо от такого в каком порядке стоят пункты меня, а если вообще удаляю primery menu то все отображается идентично русской версии. Подскажите как сохранить вид и при этом создать меня. Заранее благодарю

    • Дмитрий Алёшин says:

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

  11. Даня says:

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

    • Дмитрий Алёшин says:

      Значит, проблема с темой. Нужно смотреть ее в деталях, как именно там задается контент, какие типы записей и т.д. Возможно, все съезжает из-за какой-нибудь длинной секции, где слишком много изображений.

  12. Добрый вечер. Нужна помощь. Где то чего то не понимаю. Все установил. А у меня вместо сайтов белая страница. Как применить тему к новым сайтам?

    • Дмитрий Алёшин says:

      Белая страница — значит вы что-то сделали не так. Это сигнализирует о том, что установлено неверно.

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

      • Дмитрий Алёшин says:

        А, ну тогда да, все было гораздо проще, раз основной сайт работал. Я думал, у вас на всех сайтах пустая страница.

  13. Все разобрался. Нужно было в консоль зайти и тему активировать.

  14. Объясните пожалуйста, а где директории сайтов созданных в мультисети? Захожу через FTP, их нет. И есть такая проблема. У меня на созданных сайтах ссылки без окончания «.html» На основном сайте присутствуют. В созданных сайтах на поддоменах, в «настройках-постоянные ссылки-произвольно» внесено (/%category%/%postname%.html) но это ничего не меняет. Подскажите пожалуйста решение.

    • Дмитрий Алёшин says:

      Обычно они располагаются по своим названиям в корневой папке. К примеру, wordpress/news/ если сайт назван News. Странно, что не поменялось, может стоят кэширующие плагины? Попробуйте от администратора сети поменять их. Network Admin -> Sites. Далее щелкаете Edit для корневого сайта. Переходите в параметры, и там уже меняете постоянные ссылки.

  15. У меня нет ссылки «network admin». У меня ссылка такого типа «/wp-admin/network/sites.php»

  16. Перешел в Настройки->Параметры. Там в «Permalink Structure» написано «/%category%/%postname%.html» Сайты которые я создал на поддоменах. У хостинга прописана маска «*». Благодаря этому мне не нужно создавать отдельные папки для поддоменов. Я просто придумываю название сайта в Мультисети и он создается. Только не пойму где его директория. Как быть?

    • Дмитрий Алёшин says:

      Я сам с мультисайтами на поддоменах не работал, потому не могу вам с этим подсказать… Надо смотреть в папке WordPress, где-то эти файлы должны быть :)

  17. sagamorr says:

    Добрый день!
    У меня есть основной сайт — pycc-site.ru
    Сделал поддоен — http://himki.pycc-site.ru/, на мультисайте.
    Как подключить счетчик посещаемости и добавить в яндекс и гугл вебмастер?

  18. василий says:

    Скажите как подтверждать права собственности мультисайта wordpress доменов третьего уровня?
    основной домен понятно как а вот остальные сайты сети как подтвердить при добавлении в яндекс вебмастер и гугл вебмастер

    • Дмитрий says:

      В случае с мультисайтами есть плагины, такие как WordPress SEO, которые дают отдельную вкладку верификации для каждого сайта в Google Webmaster.

  19. Константин says:

    Добрый день,спасибо за вашу статью. Подскажите, пожалуйста, можно ли реализовать через мультисайты для каждого сайта (на общей теме) индивидуальную информацию в хедере. пример perm.site.com — сверху подписана город Пермь и телефон и т.д. по всем городам. Спасибо!

    • Дмитрий says:

      Можно. Только все надо будет делать вручную. Для каждого сайта отдельно прописывать все сведения.

  20. Василий says:

    Подскажите, пожалуйста, как ведут себя рубрики при режиме мультисайт. Интересует есть ли возможность дублирования разделов(рубрик) «новостей» на разные сайты внутри сети?

  21. Кто возьмется за реализацию мультисата на WP?

    • Дмитрий says:

      Лучше пишите в группу VK, там есть раздел предложений. Быстрее найдете там.

  22. Виталий Охрименко says:

    Здравствуйте! Хочу реализовать сеть мультисайтов для доски объявлений в вордпресс на одном шаблоне на поддоменах. То есть чтобы было отдельно авто, недвижимость, работа и т. д. Есть идея создать все на разных поддоменах ради того, чтобы распределить нагрузку на сервер и таким образом выиграть не только в аналитике, но и в скорости портала.
    Соответственно у меня возникли следующие вопросы:

    — При создании мультисайтов (сети сайтов) в вордпресс на поддоменах, каким образом нагрузка распределяется между серверами?
    — Как я понимаю данные об авторизации хранятся в единой таблице базы данных. Каким образом эта таблица может управлять всеми поддоменами?
    — На каждом поддомене будет своя база данных (физическая), либо же в единой базе данных будут свои таблицы для каждого поддомена (логические)?
    — Возможно ли распределить нагрузку между разными серверами или всю мультисеть будет обрабатывать один сервер?

    Вы мне очень поможете своими ответами!
    С уважением, Виталий Охрименко!

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

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