Несколько wordpress на одном движке

03 03 09

Автор: awtor

Столкнулся как-то с вопросом создания мультисайтового/мультидоменного движка. По запросу выдано было много, но сводной информации найдено не было. Тем более что установить хотелось все это на движке wordpress и сразу для нескольких сайтов (доменов) в одну базу.

ryanmcdonnell.com/multiple-blogs-one-wordpress-install-zero-code-changes/ заумное описание установки wordpress для нескольких блогов, но в разные базы.

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

1. Домены в одну папку. Раз движок будет один, то вполне логично, что установлен он должен быть в одной папке основного домена. Остальные домены направляем на эту папку. Как известно, менеджеры хостинга при добавлении нового сайта (домена) разрешают указать данные по папке размещения домена как на автомате по умолчанию, так и вручную. Имеем домены сайт1.ru сайт2.ru сайт3.ru  Для основного оставим папку как есть (к примеру /www/сайт1.ru), для остальных при их создании впишем папку не по дефолту, а ту которая прописана для первого основного сайта. Тем самым все сайты (домены) будут искать информацию для запуска и подключения в одной папке на хостинге.

2. Одна база. Различия в работе разных сайтов на движке wordpress в общем, определяется только файлом config.php, т.е. данными о подключении к базе, префиксами таблиц, кодовыми словами и прочее, а вся остальная информация (настройки, темплаты, подключенные плагины) уложена в базе таблиц для каждого сайта. О создании нескольких копий сайтов в одной базе хорошо написано у denis.boltikov.ru/2007/07/13/neskolko-kopij-wordpress-na-odnom-dvizhke-i-baze/

В общем виде добавляемый кусок кода в файл config.php выглядит следующим образом

$prefix = $_SERVER["HTTP_HOST"];
$prefix = str_replace("www.", "", $prefix);
$prefix = str_replace("-", "", $prefix);
$prefix = str_replace(".", "", $prefix);
$table_prefix = $prefix."_" ;

Что получаем? Исходя из запрошенного имени сайта, конфиг подключит таблицы базы с префиксом определяемым по $_SERVER['HTTP_HOST']. Для каждого сайта будет свой комплект таблиц.

3. Robots.txt и sitemap.xml Вот тут уже начинаются трудности. В папке, в общем, должно быть по одному такому файлу. Но у нас то несколько сайтов, у которых вполне определимо разные данные в роботсе и сайтмепе. Что будем делать, чтобы при запросе к определенному сайту нашей группы выдавался нужный файл? Пойдем простым путем по аналогии с базами. Сделаем несколько файлов - robots-site1.ru.txt robots-site2.ru.txt robots-site3.ru.txt и sitemap-site1.ru.xml sitemap-site2.ru.xml sitemap-site3.ru.xml А файл .htaccess дополним следующей конструкцией

RewriteCond %{REQUEST_FILENAME} /robots.txt$ [NC]
RewriteRule ^ /robots-%{HTTP_HOST}.txt [L]
RewriteCond %{REQUEST_FILENAME} /sitemap.xml$ [NC]
RewriteRule ^ /sitemap-%{HTTP_HOST}.xml [L]

Соответственно при запросе по уникальному URL сайта будут отдаваться нужные файлы роботса и сайтмепа. Единственное, что в плагине google sitemap нужно будет указать для каждого блога в их админках соответствующие файлы sitemap.

4. Загрузка картинок. Чтобы не пересекать блоги, особенно при загрузке картинок с одинаковым именем самое лучшее это создать отдельные папки для каждого блога в папке /uploads/. Соответственно в настройках “разное” для кажого блога указать конкретную для него папку загрузки.

5. Нерешенные вопросы или вопросы требующие перекодирования плагинов или прочего. Вотермарк, md5, дополнительное кеширование. У меня во всех этих плагинах конкретно указывается файл, который создает плагин и его размещение. Вариант решения не найден. Больше склоняюсь к необходимости изменения кодов плагинов. Вполне вероятно, что и некоторые другие плагины могут из-за этого отказаться нормально работать. У себя из 20 установленных пока не нашел, но ведь и плагинов то всего не 20, а намного больше. Вариант второй - просто не ставить проблемные плагины.

А как вы видите решение по вопросам последнего пункта. Да, и если будут вопросы и неясности в реализации, то обязательно спрашивайте, а я постараюсь ответить.

Подписка без комментария.
Уведомить о отзывах по e-mail

Отзывов - 27 на "Несколько wordpress на одном движке"

Страницы: [3] 2 1 » Показать все

27
- от - 29 08 10

Есть тут некоторые наработки на этот счет. До конца проверю насколько все это правильно работает, только.

Хотя метод до неприличия простой в общем то. Ждите в ближайшее время постараюсь выложить статью.

26
Koromislo
- от - 29 08 10

А что надо сделать, чтобы два сайта работали именно с одной базой (те одним набором таблиц)
Ну чтобы зеркала были?

25
познакомка
- от - 19 07 09

хотела желание с вами поообщаться поближе, есть ровня вопросов по оформлению и обмену блогами, можно даже поработать

24
DrovosekusDD
- от - 14 07 09

Случайно наткнулся через гугль! Очень интесно ;) По моему мало развернутая мысль, хотелось б более обширно почиатать.

23
- от - 24 06 09

Вообще-то нет. Разрешил. Только рерайт у них вышел неудачный совсем.

22
Vertinzoooper
- от - 23 06 09

По моему у Вас украли эту статью и поместили на другом сайте. Я её уже видела.

21
StekGeaptarma
- от - 27 05 09

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

Страницы: [3] 2 1 » Показать все

Оставить отзыв