Вопрос вот какои
хочу сделать мультисайтинг.. пока что на 2 саита..
сеичас есть уже один тут
sites/all/modules
sites/all/themes
sites/default/settings.php
как добавить другои ? не понятно с доменом.. в доке написано что друпал находит по домену settings.php.. а если у меня локально домен product.my.inner а в миру будет product.word.com.. ??
я сеичас хочу новыи саит сделать
sites/product/modules
sites/product/themes
sites/product/settings.php
как правильно сделать мультисайтинг?? что бы одна папка была и локально и на сервере???
Комментарии
Если правильно понял вропрос, то одна папка локально и на сервере невозможна.
Правильно делать так, для действующего сайта:
sites/all/modules (общие модули)
sites/site1/modules
sites/site1/themes
sites/site1/settings.php
для нового:
sites/all/modules (общие модули)
sites/site2/modules
sites/site2/themes
sites/site2/settings.php
Где site1 и site2 названия ваших доменов. Вообще ИМХО лучше обходиться без папок с модулями для каждого сайта, а использовать только общую для всех модулей, а то может возникнуть путаница.
Если я не прав, то профи поправят.
да я собрался общие модули которые сейчас для одного сайта оставить в all а тему и уникальные модули для site1 в site1 вынести..
а как же быть с setting.php как мне для domain product1.my.inner подключать тот что в site1 a для product2.my.inner тот что в site2 если на production servere domain name будут product1.word.com и product2.word.com??
ИМХО правильнее все модули в одном месте держать, а на каждом сайте включать только нужные, но в этом могу быть и не прав.
Честно не понял вопроса.
попробую рассказать..
есть у меня локальная версия (2-ух саитов ).. ну у меня на машине.. домен у меня например такои product1.local.inner and product2.local.inner..
что бы для сайта product1.local.inner подхватывалсйя свои setting.php я делаю так
sites/all/modules
sites/product1.local.inner/themes
sites/product1.local.inner/setting.php (тут своя БД)
что бы для сайта product2.local.inner подхватывалсйя свои setting.php я просто добавляю папки
sites/product2.local.inner/themes
sites/product2.local.inner/setting.php (тут своя БД)
я почитал как друпал находит нужныи сеттинг.пхп исходя из домена.. пока что всё верно?
но вопрос вот в чём.. на сервере где потом будут лежать ети саиты домены то будут 2-ие.. например produuct1.word.com and produuct2.word.com.. только 3-и уровень будет совпадать..я уже настроил всё на локальные домены
как же тогда будет друпал работать? как наидёт нужныи сеттинг.пхп??
вот как то так
Тоже в начале долго думал как лучше замутить. Пришёл к выводу что симлинки - самое удобное.
Я делаю так: локально создаю sites/product/settings.php и ставлю сайт, а на хостинге создаю симлинк sites/product.word.com на sites/product. Тогда по http://product/ открывается локальный сайт, по http://product.word.com/ - серверный.
Можно делать наоборот: создавать сайт на хостинге в sites/product.word.com, а на локальном компе ставить симлинк sites/product на sites/product.word.com.
Желательно в admin/settings/file-system прописывать путь к файлам на реальную директорию (в моём случае sites/product/files).
Спасибо большое.. я тоже думал в сторону сим линков.. интересно а в друпале решат как то ету проблему в дальнейшем.
у меня ещё возникли проблемы с мультисаитингом.. как поднять вторую базу? просто проинстолировать еше раз друпал? + к етому мне надо шарить табличку users..
сеичас таблички без префикса.. как правильно организовать поднятие 2-ой бд что бы были обшие таблицы с 1-ой?
То что таблицы первого сайта без префикса - это не страшно, просто немного неудобно.
У меня таблицы всех сайтов находятся в одной базе, но не думаю что это правильно. Хотя, зависит от количества сайтов.
Пример для создания второго сайта на локальном компе (пишу по памяти, позаботьтесь о бэкапах):
1. Настройте веб сервер или hosts файл так чтобы http://product/ указывал на основной сайт (локальный).
2. Создайте папку sites/product.
3. В ней файл settings.php (нужно сделать его из default.settings.php).
4. Зайдите на http://product/ и устанавливайте друпал в ту же базу что и первый сайт с префиксом таблиц (например _product__, первый подчерк для того чтобы новые таблицы визуально отсортировывались отдельно от старых, последних два - чтоб phpMyAdmin-подобные тулзы группировали эти таблицы).
5. В файле sites/product/settings.php найдите строчку
$db_prefix = '_product__';
и вместо неё вставте:
'default' => '_product__',
'users' => '',
'sessions' => '',
'role' => '',
'authmap' => '',
);
Таблицы _product__users, _product__sessions, _product__role, _product__authmap можно удалить.
Вроде всё. Останется только перенести новые таблицы и папку sites/product на хостинг и создать симлинк.
Вообщето умные дядьки не рекомендуют объединять таблицы без крайней необходимости. Проблемы скорее всего будут.
а можно например вдруг выяснится что понадобится объединить ещё какие то таблицы.. как ето сделать?
)
корректно ли будет сделать ALTER TABLE `_product__test` RENAME TO `test`; (вернее просто снести
а в сеттинг.пхп дописать:
был такои
<?php$db_prefix = array(
'default' => '_product__',
'users' => '',
'sessions' => '',
'role' => '',
'authmap' => '',
);?>
а станет
<?php$db_prefix = array(
'default' => '_product__',
'users' => '',
'sessions' => '',
'role' => '',
'authmap' => '',
'test' => '',
);
?>
ну чтобы базу не сносить.. и не инсталить заново
а для чего вот этот модуль Domain Access? он может как то мне поточь?
Всё верно, её можно будет снести, друпал к ней обращаться не будет.
С Domain Access не знаком. Возможно с ним попроще будет.
Обычно, прежде чем смотреть модуль, я смотрю его статистику использования, чем плавнее кривая - тем лучше модуль :), у этого кривая в последнее время какая-то сильно кривая :). Но это всё имха, попробуйте поставить, покопаться.
fed05@drupal.org, спасибо за помощь :).. я думаю пока без Domain Access попробывать.
у меня ещё вопросик... если для user я использую content_type_profile? какие таблицы нужно шарить? просто это уже как нода выходит.. что делать? шарить node, content_type_profile (и ещё какие нужно) таблицы или не обязательно?
а вот по блокам ещё.. у меня много своих блоков на первом сайте... около 8-10.. все они нужны и на втором.. но возможно и не все.. или надо будет один в 2-ое место перенести.. как быть в таком случае? шарить только table `boxes` что бы просто они были доступны и размещать как угодно? или есть 2-ой способ? как то import - export ??
есть новая проблемка...
сделал сим линки... с product.name1.com (local site) на product.com (production site)
проблема вот в чём...
у меня всё ок но я создал ещё для одного человека local site product.name2.com и теперь есть конфликты с таблицкой system
там если я чищу кэш то путь к теме ставится sites/product.name1.com/themes и на домене product.name2.com тема не работает..
product.name2.com чистит кэш => system прописывается sites/product.name2.com/themes и у меня тема не работает...
как можно решить проблему??
почему при загрузки 2-ого домена не меняются пути к теме... почему только после кеша??
может как то принудитеольно это сделать?
нет никаких идей по поводу того как можно вмешаться в процес назначения темы?
Любую переменную из таблицы system можно переопределить из settings.php
вотетого я не знал... хорошее решение..
а как это правильно сделать?
Почитайте блог юзера Dec0der или как-то так, я ему пару дней назад отвечал
сделал
$conf['filename'] = 'sites/product.com/themes/product/product.info';
но не помогает
может 2-ой array index нужен?? для назначения темы
нет никаких предложений??
у меня что то ничего не выходит..
я вывел масив conf... но ничего похожего на путь к теме я не увидел
Неужто комментарии в settings.php не помогают?
# 'site_name' => 'My Drupal site',
# 'theme_default' => 'minnelli',
# 'anonymous' => 'Visitor',
/**
* A custom theme can be set for the off-line page. This applies when the site
* is explicitly set to off-line mode through the administration page or when
* the database is inactive due to an error. It can be set through the
* 'maintenance_theme' key. The template file should also be copied into the
* theme. It is located inside 'modules/system/maintenance-page.tpl.php'.
* Note: This setting does not apply to installation and update pages.
*/
Откуда вы взяли filename я вообще не знаю, не помню такой переменной