Как сделать блог мультисайтовым

Одной из самых интересных фишек, появившихся в WordPress 3, является мультисайтовость. Теперь вы можете создать сайт, в котором у каждого пользователя будет собственный блог, и все это будет работать на одном движке, с одной базой данных, с одним набором плагинов, с одной темой оформления, и с одним самым главным суперадминистратором. Если вы создали блог для нескольких пользователей, объединенных общей идеей и доменом, то для включения мультисайтовости нужно немного поработать руками - это не так сложно, как кажется.

1. Первое, что нужно сделать - это включить мультисайтовость. Делается это с помощью одной строчки кода, которую нужно добавить в файл wp-config.php:

1
define ('WP_ALLOW_MULTISITE', true  ) ;

Многие спрашивают, куда именно вставлять эту строчку кода? Вставьте ее сразу за строчкой

1
define ('WPLANG', '');

Сохраните результат и зайдите в административную чать.
2. Шаг первый пройден - вы активировали мультисайтовость. Зайдите в административную часть и деактивируйте все плагины. После этого найдите раздел Network в меню Tools (Инструменты). Войдя в этот раздел, вы увидите приглашение к созданию мультисайтовой структуры. Назовите ее как-нибудь покрасивее и создайте, не забыв указать электронную почту суперадминистратора.

3. Теперь - самые ответственные шаги, будьте внимательны. После того, как структура будет создана, система выдаст несколько блоков с кодами, которые нужно разместить в разных файлах.
В паке wp-content создайте папку blogs.dir, и установите на нее права CMOD0666. В эту папку будут записываться медиа-файлы, загружаемые пользователями.
4. Снова откройте файл wp-config.php и добавьте к той строчке, которую вы уже внесли, еще несколько:

1
2
3
4
5
6
7
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
$base = '/';
define( 'DOMAIN_CURRENT_SITE', 'ваш_сайт.ru' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

5. К этому коду добавьте еще немного:

1
2
3
4
5
6
7
8
define( 'AUTH_KEY', '***' );
define( 'SECURE_AUTH_KEY', '***' );
define( 'LOGGED_IN_KEY', '***' );
define( 'NONCE_KEY', '***' );
define( 'AUTH_SALT', '***' );
define( 'SECURE_AUTH_SALT', '***' );
define( 'LOGGED_IN_SALT', '***' );
define( 'NONCE_SALT', '***' );

Этот код добавляет специальные ключи, обеспечивающие безопасное соединение с блогом. Под *** скрывается код вида poDyfXPF-+Z&+wU.7+r97(rRU_t3kDrBSo)t*Gr*dg]gV*N]oBQf,}|9VdI19ahM - случайный набор символов, который практически невозможно запомнить, но можно сгенерировать. В генераторе не хватает полей, чтобы заполнить все пункты? Просто обновите страницу с генератором и возьмите следующие три ключа. Эти ключи шифруют куки и усложняют возможность влома во много крат.
6. Ну и последний шаг - редактирование файла .htaccess - вставьте в него такой код:

1
2
3
4
5
6
7
8
9
10
11
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule . index.php [L]

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

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

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

Комментариев 31
  1. А что надо сделать что бы блог был на двух языках?

  2. При подключении мультисайтов, возникла "проблемка" – основной сайт расположен в папке "/blog" (сайты настроены вида site.com/site1), вопрос как изменить этот самый /blog на что-нибудь другое или убрать?! В инете ничего дельного не нашел. :-( Знаете как такое решается?

  3. Версия 3.0.1–ru_RU, и вней нет доступа к /blog,
    черти знает как у вас все на оборот. Вот так:

  4. Не получилось картинку приартачить, вот она ->

    /blog просто "физически" не доступен :-(

    Извините за флуд, что в комментах развел :-)

  5. humanBot :черти знает как у вас все на оборот.

    Ну почему же у меня наоборот? :) Скорее это у вас наоборот, а у меня – как у всех.
    Сдается мне, что такая проблема периодически возникает. Причины возникновения мне не ясны. Вот еще ссылаются на эту проблему: http://ru.forums.wordpress.org/topic/%d0%9f%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%bd%d1%8b%d0%b5-%d1%81%d1%81%d1%8b%d0%bb%d0%ba%d0%b8-3#post-23787. Если найдете ее решение – напишите тут.
    Кстати, а зачем удалять этот префикс /blog ?

  6. а где же хваленая простота? врят ли простой пользователь сможет проделать всё это без подготовки, да и догадается ли…

    • Это только кажется сложно. На самом деле WordPress сам выдает пошаговые инструкции со всеми кодами при подключении мультисайтовости – нужно им только следовать. Я в тестовом блоге подключил мультисайтовость за пару минут.

  7. Sergey Biryukov спасибо за подсказку, в указанном файле нашел (правда в 95-й строке)там удалил "/blog", и все вроде :-) заработало, буду тестить, косяки проявляться, сообщу. Автору отдельное спасибо – замечательный блог, вчера пол сайта наверно перерыл (и еще вернусь) – так держать. И еще раз спасибо всем.

  8. А ест-ли пример (сайт), дабы посмотреть в глазах пользователя?

  9. А можно ли при такой настройке подключить несколько блогов с разных доменов?

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

    • Такая ссылка и не должна работать. Это ссылка отдельного домена, а не другого блога в рамках домена. Ссылка должна быть вида сайт.ру/blog

      • Чуть выше в комментариях, кстати, подсказали, как убрать /blog из ссылки.

        • После регистрации нового пользователя мне предлагается перейти именно по такой ссылке. Кстати /blog я убрал в файле wp-admin/options-permalink.php. Но ничего не работает.

          • Видимо что-то пошло не так. Попробуйте удалить все изменения и вернуться к первоначальному состоянию. а потом попробуйте добавить MU еще раз. У меня на тестовом блоге получилось все с первого раза. Да, и не забудьте перед совершением этой операции отключить все плагины.

  11. Всем привет! Сделала 2 языка для сайта по этой технологии (правда не по этой статье=). Вроде все нормально. была проблема с плагином гугл сайтмап, но есть уже нормально работающая версия. хотя все равно теперь 2 файла sitemap-ru.xml и sitemap-eng.xml в один так и не получилось загнать. html версия карты тоже раздельная=(

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

  12. Есть ли xLanguage для wp3+?

  13. Помогите пожалуйста – на вас одна надежда. Так и не нашла такого момента: на обычном хостинге можно мультиблоговость создать на поддоменах? У нас почему-то не получается. Ссылка есть, но она битая.

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

  14. попробовал сделать все по инструкции, почему то после всех действий перестало пускать в админку, в чем может быть проблема?