Главная / Мой вордпресс / Как поставить на один WordPress несколько сайтов

Как поставить на один WordPress несколько сайтов

Want create site? Find Free WordPress Themes and plugins.

Допустим у нас есть желание поставить на один движок (один комплект файлов и одну базу данных) несколько сайтов. Как это можно сделать на WordPress? Все оказалось до обидного просто.

Как поставить на один WordPress несколько сайтов

Сначала немного философии.

Зачем нужно так извращаться? Причины могут быть такими:

  1. Есть дешевый хостинг, в котором больше одного домена и одной базы данных не предполагается (но к доменам можно добавлять алиасы).
  2. На хостинге мало места, и не хочется его занимать одинаковыми копиями WordPress.
  3. Не удобно обновлять версии WordPress для нескольких сайтов.
  4. Ну и т.д.

В общем бывают моменты, когда такое нужно сделать.

Теперь немного про ворд-пресс.

Почти все настройки WP хранит в базе данных. В файлах WP хранит только логин-пароль-хост от базы данных, и, что нам очень поможет, префиксы таблиц. Т.е. фактически мы в одной базе можем хранить данные для нескольких WP, главное, чтобы префиксы были разными. Удобно, правда?

Из этого делаем вывод, что для нескольких сайтов на WordPress нам достаточно иметь одну базу данных, один набор файлов, и несколько файлов конфигурации (wp-config.php), по файлу на каждый сайт.

Теперь как это сделать

Все достаточно просто. Будем считать, что у нас есть 2 хоста, глядящих в один каталог со сборкой WP host1.ru и host2.ru. Создаем в каталоге с WP подкаталог config, в котором у нас будут лежать конфиги для сайтов. Делаем 2 копии wp-config-simple.php, которые кладем в созданный нами подкаталог config, и называем каждую копию по имени сайта + .php. У нас получается:
/config/host1.ru.php
/config/host2.ru.php

В конфигах пишем логины, пароли, ключи и т.д. И, что самое главное, меняем префиксы к базам данных. Я делаю префиксы по именам сайтов:

В /config/host1.ru.php:
$table_prefix  = 'host1_ru_';

В /config/host2.ru.php:
$table_prefix  = 'host2_ru_';

Теперь нам осталось подсовывать WP нужный конфиг, в зависимости от того, к какому сайту идет обращение по http.

Открываем файл wp-load.php (в версии 2.6 и выше), в котором собственно конфиг и подключается, и, в первую очередь, пишем вот такую строку:

$config_file_name = preg_replace('/www\./', '', $_SERVER['HTTP_HOST']);

Теперь переменная $config_file_name будет содержать название хоста, к которому обращались, при чем нам не важно, обращались к хосту с www или без оного, “www.” отсекается.

Ну а дальше меняем пути подключения конфигов с

ABSPATH . '/wp-config.php';

на

ABSPATH . '/config/'.$config_file_name.'.php'.

Вот и все, теперь у нас есть один WP на несколько сайтов.

Did you find apk for android? You can find new Free Android Games and apps.

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

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*

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