Как решить такую задачу…

Планируется такая структура сайта:

  • Основной сайт – http://sait.ru
  • много поддоменов:

poddomen1.sait.ru
poddomen2.sait.ru
poddomen3.sait.ru

По сути 4 сайта.

Хотелось, чтобы все 4 работали на одной копии WordPress, но у каждого сайта была своя база данных.

Т.е. один движок, но 4 базы.

Реально ли сделать такое?
Если реально, то как?

Можно написать подобный фрагмент в wp-config.php:

$host = str_replace( 'www.', '', $_SERVER['HTTP_HOST'] );

if ( $host == 'sait.ru' )
    define('DB_NAME', 'sait');
elseif ( $host == 'poddomen1.sait.ru' )
    define('DB_NAME', 'poddomen1');
elseif ( $host == 'poddomen2.sait.ru' )
    define('DB_NAME', 'poddomen2');
elseif ( $host == 'poddomen3.sait.ru' )
    define('DB_NAME', 'poddomen3');

unset($host);

Сергей, спасибо. Попробую.

Еще один вопрос – как на основном сайте http://sait.ru вывести записи из поддоменов – например, http://poddomen3.sait.ru?

Вывести последние записи в виде списка или использовать тот же контент c другим оформлением?

Задача двойная:

Первое, Контент из поддомена (poddomen1.sait.ru) – а именно, последние записи и записи из определенной рубрики нужно вывести в сайдбаре основного сайта (sait.ru)

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

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

Задача двойная:

Первое, Контент из поддомена (poddomen1.sait.ru)  - а именно, последние записи и записи из определенной рубрики нужно вывести в сайдбаре основного сайта (sait.ru)


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

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

Зачем все так скложно? Ведь есть Network решение. Сейчас на одном только вордпрессе можно делать мульти сайты.

http://codex.wordpress.org/Create_A_Network
video: http://www.youtube.com/watch?v=LppTsokFCpM&feature=player_embedded

Этот мультисайт создает одну базу для всех сабдоменов.

А если сабдоменов будет 20 или 40 и на каждом полноценный сайт с посещаемостью в несколько тысяч уников, то одновременные запросы к базе данных положат этот сайт.

Нужно, чтобы для каждого сабдомена была своя база данных.

Этот мультисайт создает одну базу для всех сабдоменов.

А если сабдоменов будет 20 или 40 и на каждом полноценный сайт с посещаемостью в несколько тысяч уников, то одновременные запросы к базе данных положат этот сайт.

Нужно, чтобы для каждого сабдомена была своя база данных.

Кто тебе это сказал? Об этом позаботиться сервер!!! Правда если запросов будет так уж много то может немного зависать на секунд 3-5 но не дольше. Я работал этим нетворком .. вроде все ок. Правильно настрой и все будет ок. Значить если у тебя будет 40 субдоменов буешь делать 40 баз данных?)))

Значить если у тебя будет 40 субдоменов буешь делать 40 баз данных?)))

Ну, 40 скорее всего не будет – это я в качестве примера.

Будет скорее всего 10-20. А почему собственно нельзя создать 20 баз?
Чем это плохо?

Еще, в кодексе написано, что мультисайт не стоит ставить на виртуальном хостинге, т.е. нужен сервер.

А это дополнительные сложности – я не имею ввиду стоимость сервера, но его же нужно настраивать как то и управлять им.

А почему собственно нельзя создать 20 баз? Чем это плохо?

Тем, что так получится 20 ничем не связанных между собой и ничего не знающих друг о друге сайтов, а не один мультисайт. Вообще-то, mysql без разницы, в какой базе лежат таблицы.

Т.е., если запрашиваться будут не одни и те же данные (запрос будет касаться разных таблиц), то нагрузка на базу не возрастет – я правильно поняла?

Нагрузка на базу (на СУБД, если быть точным) зависит от количества и "тяжести" запросов, а не от того, как таблицы размазаны по базам. Но в случае, когда одному скрипту нужны данные из разных баз, нагрузка больше (лишнее соединение с БД), не говоря уже о нагрузке на программера, которому надо разруливать эту ситуацию.

Спасибо, разобралась.

Anonymous
Отправить
Ответ на: