Мультисайтинг в Друпале

Мультисайтинг - это такой хитрый способ хранения файлов на сервере, экономящий кучу времени и памяти (физической). Если спросить во сколько раз он экономит это самое время и место - то ответ будет таким: примерно во столько раз, сколько сайтов хранится на данном сервере. Если на сервере сто сайтов - то в 90-100 раз будет экономия места, в зависимости от сложности и индивидуальности. И время на инсталяцию друпала со всеми модулями сокращается от нескольких часов до пары минут. Удобно, ё-моё.

Итак, сейчас я расскажу в чём же смысл мультисайтинга. А смысл прост - куда-нибудь в корень заливается друпал со всеми модулями. После чего при установке нового сайта, в папку с сайтом не надо будет копировать заново друпал. Просто вместо файлов (папок) ставить ссылки на эти файлы, находящиеся в папке с друпалом на сервере. А если учесть, что размер ссылки - около 33кб, то получается очень даже неплохая экономия места на сервере. И ссылки создать - это дело секунд 10ти.

Теперь к практике. О том, как Я делаю мультисайтинговую структуру. Есть такая замечательная программа - WinSCP. Качаем, устанавливаем. Удобная в использовании, широко не распространённая. В общем, то что надо Smile После инсталяции открываем ехе-шник, вводим сервер/логин/пароль (как обычно при входе на сервер, ничего нового). Далее в корень заливаем папку с чистым друпалом. Рядом обычно лежит папка с доменами. У меня на большинстве серверов это выглядит вот так:

123.PNG

Папка внутри друпала выглядит так (я сразу исключил файлы, которые нам не нужны):

mult.PNG

Теперь заходим в каталог с любым нашим доменом (пока каталог чист, не считая папок, созданных сервером), жмём правую кнопку мыши -> new -> link. Указываем имя файла или папки, и ссылку на эту папку (файл) на сервере. Например:

mult_0.PNG

таким же образом линкуем следующие файлы (для друпал 6):

  • includes
  • misc
  • modules
  • profiles
  • scripts
  • themes
  • cron.php
  • index.php
  • install.php
  • update.php
  • xmlrpc.php

Остальные файлы пока линковать НЕ НАДО.

Далее в эту же папку забрасываем (без линковки) файлы .htaccess и robots.txt (т.к. для каждого сайта они свои). Теперь создаём пустую папку sites. Заходим в неё и создаём ссылку на папку all из ../drupal/sites/all. Далее из стандартного друпала в папку /sites закидываем всё содержимое папки default (а это - папки files и tmp и файл settings.php). Переименовываем папку default в папку с названием сайта (по идее не обязательно, но я всегда так делаю).

В итоге в корневом каталоге домена у нас получится:

mult_1.PNG

А в папке /sites:

mult_2.PNG

Далее остальные домены создаются ещё проще - выбираются все линки из готового домена -> правая кнопка мыши -> duplicate -> вводите адресс куда копировать ссылки -> готово:

mult_3.PNG

Теперь все темы, модули и прочее надо закидывать только в ../drupal/sites/all. И все ваши сайты, созданные подобным образом, будут видеть эти модули и темы. Таким образом, если у вас на сервере сто сайтов, и вам вдруг захотелось поставить/проапдейтить/удалить модуль, то сделать это придётся только один раз, а не сто.

Автора автора