Несколько 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 на одном движке"

1
Sansi
- от - 20 03 09

Если не заморачиваться, то для г сайтов и так пойдет.

2
nailbomb
- от - 15 04 09

Автор продолжай в том же духе

3
Рихард Тихомиро
- от - 15 04 09

Хороший пост! Подчерпнул для себя много нового и интересного! Пойду ссылку другу дам в аське :)

4
- от - 15 04 09

Спамить не советую. Я не придерживаюсь мнений других – оставлять ссылки и оборачивать их в запреты индекса. Я их просто вырезаю. Ссылок в комментах не будет.

5
lea
- от - 16 04 09

Эээ, а объясните, пожалуйста, а то я что то не совсем в тему въехал, это как?

6
dmitriika
- от - 16 04 09

Kazhdyj raz vozvrawajus’ k vam snova, i ne razocharovyvajus’.

7
Sewa
- от - 16 04 09

Обилие интересных статей на вашем сайте меня поражает! Автору – удачи и новых интересных постов!

8
D&S
- от - 19 04 09

Огромное человеческое спасбо!

9
Kasper
- от - 19 04 09

Я практически случайно зашел на этот сайт, но задержался тут надолго. Задержался, потому что все очень интересно. Обязательно скажу о вас всем своим друзьям.

10
Anna
- от - 20 04 09

хочу сделать вышеописанное со своими поддоменами. не получается. во-первых, в какой папке они должны быть? например, у меня основной сайт здесь: root/sitecom/www, в www- весь ВП. домен здесь: root/sitecom/subdomain. так надо?
во-вторых, при создании поддомена в нужной директории или при изменении др. доменов, чтобы они в общую папку обращались, таблицы в БД сами создаются? если да, то после этого при загрузке поддомена в браузере уже должно что-то показыватся, видимо дефолтовая тема ВП?
в-третьих, каким образом я могу управлять поддоменом из общей админки ВП? где там что нужно менять, чтобы показывало нужный поддомен?

11
- от - 20 04 09

В вашем разрезе, применение wodpress – стрельба по воробьям из пушки. Оптимальны вариант – wordpressMU. Он как раз лучше поддерживает работу по субдоменам и папкам.
Предложенный же вариан – больше подходит для управления сайтами на отдельных доменах 2го уровня. В варианте с субдоменами будет просто еще больше извращений.

12
tea
- от - 23 04 09

Должен признать, вебмастер зачетно накропал.

13
Visabi
- от - 26 04 09

Хотле бы узнать по поводу вашего домена, awtor.com. Продается ли домен, и если да, то прошу ответить мне на почту, а также отписаться в комментариях – вдргу спам фильтр не пропсутит.

14
- от - 26 04 09

)) Все зависит от предложенной суммы, если устроит – передам. Ничего вечного нет.

15
TYNA
- от - 05 05 09

Pirjatno chitat’ na russkom jazyke interesnye i umnye mysli. Uzhe pjat’ let v Anglui zhivu.

16
freezzz
- от - 08 05 09

Привет! Читаю не первый день странички. Да вот скорость соединения хромает. Как можно подписаться на вашу RSS-ленту? Хотелось бы читать вас и дальше.

17
Denis Kurnakov
- от - 08 05 09

Привет! Все кто читает этот блог – С Днем Примирения и согласия!

18
StekGeaptarma
- от - 23 05 09

Что-то футер у вас вправо съехал (в опере при разрешении 1024х768)

19
Владимир
- от - 23 05 09

Сам долго искал как это реализовать. Очень полезно иногда использовать одну базу. Спасибо

20
- от - 23 05 09

Stek – люблю сказки, но детские, а не спамные.

21
StekGeaptarma
- от - 27 05 09

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

22
Vertinzoooper
- от - 23 06 09

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

23
- от - 24 06 09

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

24
DrovosekusDD
- от - 14 07 09

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

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

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

26
Koromislo
- от - 29 08 10

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

27
- от - 29 08 10

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

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

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