Здравствуйте!
Возможно ли развернуть на одной копии системы десяток разных сайтов (site1.ru, site2.ru и т.д.)?
Имеет ли это смысл, при условии что речь идет о разных сайтах с разными базами данных?
Если такой мультисайтинг возможен и целесообразен, тогда вопрос: как это сделать при условии, что разработка сайта и первоначальное наполнение информации происходит на локальной машине, а потом готовый сайт будет переносится на сервер? Как организовать хранение конфига/конфигов и папок для файлов (files) в папке "sites"?
Заранее спасибо.
Комментарии
gogogo search
Это без проблем. Изучите глубже мультисайтинг. Материалов вагон. Есть доклад Влада Савицкого, где он рассказывает подробно какие таблицы БД можно не рекомендуется и нельзя объядинять, а также общие принципы построения мультисайтинга.
Скажу кратко: все модули для каждого сайта храняться в папке sites/example.com/modules, темы соответственно в sites/example.com/themes. А вот где храняться настройки (settings.php) и папка с файлами (files) попробуйте догадаться сами, это не сложно.
Мультисайтинг это одно из достоинств друпал.
Облегчает установку новых сайтов (нужно только добавить базу) и обновление ядра и модулей (нужно обновлять только в одном месте).
Вот мой доклад: http://camp09.drupal.ua/ru/blog/multisiting
Я бы советовал изучить материал по ссылкам, что в конце презентации.
Спасибо за доклад - на будущее обязательно пригодится. Один из сайтов, который надо будет переделать - это на самом деле 3 сайта, часть контента которых пересекается, а у родителя - частично объединяется.
Информации в интернете очень много, но она очень разрозненная. И еще очень тяжело переключиться, после того как делал сайты на своей собственной системе - там где все сделано так, как я это видел.
Перечитав все что можно - пришел к следующему выводу.
Как это работает сейчас:
Имеется сервер, на котором размещены 10 разных сайтов: site1.ru, site2.ru и т.д.
Сайты сделаны на своей CMS (asp). Все сайты обслуживает одна копия системы. База данных у каждого сайта своя. Разруливается все в конфигурационном файле asp-приложения. В web.config прописано соответствие между доменами, к которым идет обращение, и параметрами соединения с базой данных. Содержание сайта и всего его настройки - хранятся в базе. Для каждого сайта есть своя папка на диске, в которой хранятся ее вложенные файлы и картинки.
Вся эта схема работает и локально на моей машине. Разница только в том, что локально я могу обратиться к сайту только по адресу localhost. Поэтому в web.config добавлена строка - параметры соединения с базой данных для сайта localhost. Меняя эти параметры, я выбираю сайт с которым буду работать в данный момент.
Как это будет работать на Drupal (сначала локально, а потом на сервере):
Локально:
Файлы: для хранения файлов сразу заводим папки "sites/files/client1name", "sites/files/client2name" (лучше так, чем "sites/files/site1.ru", т.к. домен теоретически может поменяться, а ссылки на файлы останутся старыми) и в будущем на каждом сайте в настройках файловой системы прописываем соответствующий путь.
В папке "sites/default" - хранится все что связано с сайтом, с которым ведется работа в текущий момент. Именно этот сайт показывается при обращении к localhost.
Настройки (settings.php, темы и доп.модули, которые нужны только для этого сайта) каждого сайта храним в "sites/siteN.ru".
И самое главное - когда я хочу поработать локально с определенным сайтом - я все из папки "sites/siteN.ru" копирую в "site/default". А в конце работы - копирую обратно.
В том числе и копируется файл settings.php (некий аналог web.config), в котором прописано к какой базе подключаться.
На сервере:
На сервер переношу все как есть и все сразу работает, при условии, что в каждом settings.php я прописал нормальные домены (site1.ru, site2,ru) и папки в которых хранятся сайты называются также "sites/site1.ru", "sites/site2.ru".
Осталось дождаться когда я переделаю локально первый сайт, сяду за второй и возможно встанет вопрос - как запустить процесс первоначальной установки сайта. Достаточно ли для этого будет того, что в "sites/default" - будет новый пустой settings.php.
Подскажите, я правильно понял суть идеи?
Нет, копирование туда-сюда явно лишнее