Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

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

В WordPress 3.0 появилась возможность создать сеть сайтов (режим Multisite). Данная статья содержит инструкцию по созданию сети. Это похоже на создание вашего собственного сервиса по образу и подобию WordPress.com.

ЗАМЕЧАНИЕ: Если вы используете WordPress MU, эти шаги выполнять не нужно. Ваша сеть уже активирована. Когда вы обновите WordPress до версии 3.x, вам будет предложено обновить правила в файле .htaccess для режима Multisite.

Перед началом

Требования к администратору

Если вы хотите запустить сеть блогов, вам следует иметь представление об основах администрирования UNIX/Linux. Также рекомендуется знание основ WordPress, PHP, HTML и CSS.

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

Требования к серверу

Поскольку данная функция требует настройки сервера и некоторых технических навыков, следует проконсультироваться с вашим хостинг-провайдером по поводу поддержки этой функции. Запускать её на виртуальном хостинге не рекомендуется.

На шаге 4: Установка сети можно выбрать режим поддоменов или подкаталогов. Это означает, что каждый новый сайт вашей сети будет создан как виртуальный поддомен или подкаталог.

  • Поддомены — пример: site1.example.com и site2.example.com
  • Подкаталоги — пример: example.com/site1 и example.com/site2

Помимо этого, на более позднем этапе можно воспользоваться плагином WordPress MU Domain Mapping, чтобы назначить отдельным сайтам собственные доменные имена.

Сайты в подкаталогах
Используется расширение mod_rewrite на сервере с возможностью обработки файла .htaccess, в котором будет создана структура ссылок.
Если вы уже используете на своём блоге «красивые» постоянные ссылки, то и сайты в подкаталогах будут работать.
Сайты на поддоменах
Используется маска для поддоменов. Необходимо разрешить её использование в Apache, а также добавить маску в записи DNS. (См. подробности на шаге 2.)
У некоторых хостинг-провайдеров уже разрешено использование маски, и в этом случае остаётся только добавить запись DNS.
На тарифах виртуального хостинга этой возможности может не быть, поэтому перед включением этой функции проконсультируйтесь с вашим хостинг-провайдером.

Требования к параметрам WordPress

  • При включённом режиме Multisite в WordPress 3.0 недоступна возможность размещения WordPress в отдельном каталоге. Она конфликтует с поиском дочерних блогов.
  • Создать сеть нельзя в следующих случаях:
    • «Адрес WordPress (URL)» и «Адрес сайта (URL)» отличаются.
    • «Адрес WordPress (URL)» использует номер порта, отличный от ':80' и ':443'.
  • Выбрать режим поддоменов нельзя в следующих случаях:
    • WordPress установлен в подкаталог (вместо корневого каталога).
    • «Адрес WordPress (URL)» совпадает с localhost.
    • «Адрес WordPress (URL)» совпадает с IP-адресом наподобие 127.0.0.1.
  • Выбрать режим подкаталогов нельзя в следующих случаях:

(См. подробности в файле wp-admin/network.php.)

Шаг 1: Создание резервной копии WordPress

При создании сети WordPress будет обновлён. Пожалуйста, сделайте резервную копию базы данных и файлов.

Шаг 2: Настройка маски для поддоменов

(Если вы выбрали режим подкаталогов, пропустите этот шаг.)

Сайты на поддоменах работают с использованием маски для поддоменов. Процесс состоит из двух шагов:

  1. Необходимо настроить поддержку маски в Apache.
    1. Откройте файл httpd.conf или подключаемый файл, содержащий запись VHOST для вашего сайта.
    2. Добавьте следующую строку:
      ServerAlias *.example.com
  2. В записях DNS для вашего сервера добавьте поддомен с маской, указывающий на основной домен. Это выглядит примерно так:
    A *.example.com

Если на вашем сервере используется панель Plesk. По сравнению с сервером, использующим cPanel (или вообще без панели управления), настройка маски для поддоменов на сервере, использующем панель Plesk, содержит некоторые отличия. Все необходимые шаги описаны в статье «Configuring Wildcard Subdomains for multi site under Plesk Control Panel‎». Несмотря на то, что указания довольно подробные, процесс занимает всего несколько минут.

Внешние ссылки:

Шаг 3: Включение режима Multisite

Чтобы появился пункт меню «Сеть», нужно определить константу режима Multisite в файле wp-config.php.

Откройте wp-config.php и добавьте перед комментарием /* Это всё, дальше не редактируем. Успехов! */ следующую строку:

define('WP_ALLOW_MULTISITE', true);

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

У вас должен появиться пункт «Сеть» в меню «Инструменты». Перейдите на страницу «Инструменты» > «Сеть», чтобы увидеть экран, на котором можно настроить параметры будущей сети.

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


Адреса сайтов вашей сети
Можно выбрать между поддоменами и подкаталогами (если нет ограничений, описанных выше). Это означает, что каждый новый сайт вашей сети будет создан как виртуальный поддомен или подкаталог. Вы должны выбрать один из вариантов, и изменить свой выбор без переустановки системы будет нельзя. См. также секцию «Перед началом».
  • Поддомены — пример: site1.example.com и site2.example.com
  • Подкаталоги — пример: example.com/site1 и example.com/site2
Параметры сети
Эти значения заполняются автоматически.
Адрес сервера
Интернет-адресом вашей сети будет example.com.
Название сети
Как вы хотите назвать свою сеть?
E-mail администратора
Ваш адрес e-mail.

Убедитесь, что все значения введены правильно, затем нажмите кнопку «Установить».

Возможно, вы увидите предупреждение о маске для поддоменов. См. секцию «Настройка маски для поддоменов».

Внимание! Возможно, маска DNS настроена неправильно!

Скрипт установки попытался открыть случайный адрес (13cc09.example.com) на вашем домене.

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

Можно использовать основной сайт, однако любой созданный поддомен будет недоступен. Если вы уверены, что ваши настройки DNS верны, проигнорируйте это сообщение.

Шаг 5: Активация сети

Следующие шаги необходимы для завершения процесса.

Завершение создания


0. Прежде всего сделайте резервную копию текущих файлов wp-config.php и .htaccess.
1. Создайте директорию blogs.dir в каталоге /wp-content/.
Эта директория используется для хранения медиафайлов, загружаемых на сайты, и должна быть доступна для записи. С помощью команд CHOWN и CHMOD нужно установить такие же параметры, как и у каталога wp-content.
2. Добавьте строки, которые выдаст вам WordPress, в файл wp-config.php.
Эти строки создаются динамически в зависимости от конфигурации вашей сети.
Откройте файл wp-config.php, оставаясь авторизованным в панели управления сайтом.
Добавьте созданные строки сразу перед комментарием /* Это всё, дальше не редактируем. Успехов! */.
Размещённую ранее строку define('WP_ALLOW_MULTISITE', true); стоит удалять только в том случае, если вы хотите избавиться от пункта «Сеть» в меню. Можно оставить его, чтобы всегда иметь доступ к правилам в .htaccess.
3. Добавьте созданные правила mod_rewrite в файл .htaccess, заменив остальные правила WordPress.
(Если такого файла нет, создайте его.)
Эти строки создаются динамически в зависимости от конфигурации вашей сети.
4. Авторизуйтесь заново.
После завершения перечисленных шагов и сохранения файлов wp-config.php и .htaccess ваша сеть будет активирована и настроена. Вам потребуется авторизоваться снова. Нажмите «Войти», чтобы попасть в панель управления. Если войти не удаётся, очистите кэш браузера и файлы cookie.

Шаг 6: Управление сетью

Network Admin

В верхней панели слева появилось меню «Мои сайты». Там перечислены все ваши сайты с удобными выпадающими меню, а также пункт «Управление сетью», где можно выбрать пункт «Консоль», чтобы перейти в консоль управления сетью.

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

Дополнительная информация: Управление сетью

Это нужно знать

Здесь приведены некоторые дополнительные сведения, которые нужно иметь в виду при администрировании сети.

Постоянные ссылки

Постоянные ссылки по-прежнему будут работать, хотя на основном блоге (т.е. на первом из созданных) к адресам будет добавлен префикс blog, и они примут вид domain.com/blog/YYYY/MM/POSTNAME

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

Плагины WordPress

Плагины WordPress теперь обладают дополнительной гибкостью, в зависимости от их предназначения в сети.
  • Плагины для конкретных сайтов: Плагины WordPress, которые владельцы блогов могут активировать или деактивировать в индивидуальном порядке, находятся в каталоге plugins. Вам нужно разрешить страницу «Плагины» для администраторов отдельных сайтов на странице «Настройки сети».
  • Сетевые плагины: Плагины WordPress, расположенные в каталоге plugins, могут быть активированы суперадминистратором для всей сети.
  • Необходимые плагины: Плагины WordPress, используемые на всех сайтах сети, можно также устанавливать в каталог mu-plugins в виде отдельных файлов или файлов, подключающих подкаталоги. Файлы в дочерних директориях внутри этого каталога не обрабатываются. Эти файлы не требуют активации и деактивации; если они есть, то они используются.

Рубрики и метки

По умолчанию в WordPress 3.0 глобальные элементы отключены. Чтобы вывести глобальные метки на главную страницу сайта либо на отдельные страницы или блоги сети для облегчения навигации по помеченному содержимому, можно воспользоваться плагином Sitewide Tags или другим подобным.

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

Если вы установили WordPress больше месяца назад, то при попытке активировать сеть вам будет доступен только режим поддоменов. Это сделано, чтобы предотвратить возможные конфликты между страницами (например, example.com/pagename) и сайтами (например, example.com/sitename). Если вы уверены, что эта проблема вас не коснётся, после завершения установки можно изменить режим.

Измените значение параметра SUBDOMAIN_INSTALL в wp-config.php:

Использовать поддомены
define( 'SUBDOMAIN_INSTALL', true );
Использовать подкаталоги
define( 'SUBDOMAIN_INSTALL', false );

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

.htaccess и Mod Rewrite

В отличие от одиночного сайта на WordPress, который может работать с «некрасивыми» постоянными ссылками и без расширения Mod Rewrite, режим MultiSite требует его, чтобы обрабатывать адреса дочерних сайтов. Это приводит к необходимости использовать файл .htaccess, формат которого в режимах подкаталогов и поддоменов немного отличается. В примерах ниже показаны стандартные правила .htaccess для режимов подкаталогов и поддоменов, когда WordPress установлен в корневой каталог сайта. Если ваш WordPress размещён в отдельном каталоге, нужно соответствующим образом изменить значение RewriteBase.

Помните, что это ПРИМЕРЫ, которые работают на многих, но не на всех серверах.

Пример для режима подкаталогов

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

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress

Пример для режима поддоменов

# BEGIN WordPress
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]
# END WordPress

Смотрите также