Мультидоменный сайт с контентом, частично зависимым от домена

Чт, 08/12/2016 - 06:55

Всем привет.
Мне нужно сделать мультидоменный сайт одной организации. Домены будут вроде:
orgname.by
orgname.ru
moscow.orgname.ru
spb.orgname.ru
и т.д.

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

Как это оптимально сделать?

0 Спасибо

Комментарии

Аватар пользователя fairrandir
4 months 3 недели назад fairrandir #

В Domain Access вроде же по дефолту. При создании материала можно будет указывать, на какие домены публиковать.

0 Спасибо
Аватар пользователя marazmus
4 months 3 недели назад marazmus #
fairrandir написал:
В Domain Access вроде же по дефолту. При создании материала можно будет указывать, на какие домены публиковать.

Поддерживаю, модуль Domain Access и его подмодули. Metatag тоже дружит с Domain Access, насколько я помню.

0 Спасибо
Аватар пользователя gun_dose
4 months 3 недели назад gun_dose #

Спасибо, попробую. Но назревает второй вопрос: как это можно затестить на локалке, при условии, что я работаю в докере и у меня все сайты в домене 127.0.0.1, только порты разные, причём порт идет не один на сайт, а один на контейнер?

0 Спасибо
Аватар пользователя gun_dose
4 months 3 недели назад gun_dose #

Проблема в том, что адрес контейнера выглядит так: 127.0.0.1:7776

А порты в хостах не пропишешь.

0 Спасибо
Аватар пользователя ХулиGUN
4 months 3 недели назад ХулиGUN #

Проброс портов, не? -p '7776:80'
Только я не понимаю нахрена одновременно поднимать несколько контейнеров с разными сайтами)))

0 Спасибо
Аватар пользователя multpix
4 months 3 недели назад multpix #

непонятно, зачем вообще для дру локально докер, когда для разработки достаточно php и drush)))

0 Спасибо
Аватар пользователя gun_dose
4 months 3 недели назад gun_dose #

шоб не мучаться настраивать это на маке. И, кстати, помимо пхп и драша есть ещё одна важная хреновинка для друпала))

0 Спасибо
Аватар пользователя multpix
4 months 3 недели назад multpix #

едино-разовая инсталляция в свою систему своего рабочего ЯПа это мучения?
что еще я не знаю?

в большинстве случаев мой процесс развертки нового проекта локально следующий:

drush dl цели
drush si аргументы
drush rs

очень редко использую локальные nginx, mysql, postgresql
какая еще хреновинка нужна?

0 Спасибо
Аватар пользователя ХулиGUN
4 months 3 недели назад ХулиGUN #

Сань, не знаю как у друпала с этим дела, но мне тут понадобились для проекта некоторые внешние либы специфических версий... поэтому я засовывал их в контейнеры + есть в команде некий верстальщик, далёкий от бека, работающий из под венды... и развернуть локальное окружение для него - проблема. Поэтому докер композ и всё просто...

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

0 Спасибо
Аватар пользователя multpix
4 months 3 недели назад multpix #

так я не о том, что докер совсем не нужен,
он нужен там, где нужен, а не везде где ни попади.

в этом конкретном случае, для группы разрабов, возможно, оправдан докер с полноценным LNMP
хотя...
не хочу щас глубоко копать, но есть чуйка, что можно красиво обойтись)

0 Спасибо
Аватар пользователя gun_dose
4 months 3 недели назад gun_dose #

Mysql нужен, ну да пофиг, разберусь как-нибудь))

0 Спасибо
Аватар пользователя multpix
4 months 3 недели назад multpix #

мне для разработки хватает sqlite))

0 Спасибо
Аватар пользователя ХулиGUN
4 months 3 недели назад ХулиGUN #

Или Вы свой один мультидоменный раскидываете на кучу контейнеров?

0 Спасибо
Аватар пользователя ХулиGUN
4 months 3 недели назад ХулиGUN #

Как вариант вынести nginx в отдельный контейнер или поверх докера и там уже upstream: 127.0.0.1:{номер порта} для каждого сайта

0 Спасибо
Аватар пользователя multpix
4 months 3 недели назад multpix #

Чисто для себя, попробовал поднять сайт для нескольких доменов с  domain

devel@comp ~/projects/drupal/test $ [] drush dl drupal
Project drupal (8.2.4) downloaded to /home/devel/projects/drupal/test/drupal-8.2.4.                          [success]
Project drupal contains:                                                                                     [success]
 - 1 profile: standard
 - 14 themes: testing_multilingual_with_english, minimal, testing_config_import, testing_config_overrides,

drupal_system_listing_compatible_test, testing, testing_multilingual, testing_missing_dependencies, stark,
bartik, seven, stable, classy, twig
 - 70 modules: shortcut, hal, entity_reference, content_moderation, contact, book, filter, user,
automated_cron, link, content_translation, simpletest, menu_ui, config_translation, system, block, color,
field_ui, taxonomy, editor, node, block_content, basic_auth, dblog, serialization, breakpoint, quickedit,
search, path, rdf, migrate_drupal_ui, responsive_image, tracker, outside_in, aggregator, ckeditor, action,
update, syslog, datetime_range, forum, migrate, language, file, datetime, text, rest, dynamic_page_cache,
field, contextual, image, views_ui, options, page_cache, menu_link_content, inline_form_errors, ban, toolbar,
help, big_pipe, block_place, history, comment, migrate_drupal, statistics, telephone, locale, config, tour,
views

devel@comp ~/projects/drupal/test $ [] mkdir drupal-8.2.4/modules/contrib
devel@comp ~/projects/drupal/test $ [] cd drupal-8.2.4/
devel@comp ~/projects/drupal/test/drupal-8.2.4 $ [] drush site-install --db-url=sqlite://sites/default/files/.ht.sqliteYou are about to create a /home/devel/projects/drupal/test/drupal-8.2.4/sites/default/settings.php file and CREATE the 'sites/default/files/.ht.sqlite' database. Do you want to continue? (y/n): y
Starting Drupal installation. This takes a while. Consider using the --notify global option.                 [ok]
Installation complete.  User name: admin  User password: 2Cw5QbEQ2U                                          [ok]
Congratulations, you installed Drupal!                                                                       [status]
devel@comp ~/projects/drupal/test/drupal-8.2.4 $ [] drush upwd admin --password=12345
Changed password for admin                                                                                   [success]
devel@comp ~/projects/drupal/test/drupal-8.2.4 $ [] drush dl domain
Project domain (8.x-1.0-alpha6) downloaded to                                                                [success]
/home/devel/projects/drupal/test/drupal-8.2.4//modules/contrib/domain.
Project domain contains 6 modules: domain_content, domain_source, domain_alias, domain_access, domain, domain_config.
devel@comp ~/projects/drupal/test/drupal-8.2.4 $ [] drush en domain_content domain_source domain_alias domain_access domain domain_config
The following extensions will be enabled: domain_content, domain_source, domain_alias, domain_access, domain, domain_config
Do you really want to continue? (y/n): y
domain was enabled successfully.                                                                             [ok]
domain defines the following permissions: access inactive domains, use domain switcher block, administer domains, create domains, delete assigned domains, edit assigned domains, view domain information
domain_access was enabled successfully.                                                                      [ok]
domain_access defines the following permissions: assign editors to any domain, assign domain editors, create domain content, delete domain content, edit domain content, publish to any assigned domain, publish to any domain, view unpublished domain content, create article content on assigned domains, delete article content on assigned domains, update article content on assigned domains, create page content on assigned domains, delete page content on assigned domains, update page content on assigned domains
domain_alias was enabled successfully.                                                                       [ok]
domain_config was enabled successfully.                                                                      [ok]
domain_content was enabled successfully.                                                                     [ok]
domain_content defines the following permissions: access domain content, access domain content editors
domain_source was enabled successfully.                                                                      [ok]
devel@comp ~/projects/drupal/test/drupal-8.2.4 $ [] drush rs
HTTP server listening on 127.0.0.1, port 8888 (see http://127.0.0.1:8888/), serving site default, logged in as admin...
PHP 7.0.8-0ubuntu0.16.04.3 Development Server started at Thu Dec  8 17:56:50 2016
Listening on http://127.0.0.1:8888
Document root is /home/devel/projects/drupal/test/drupal-8.2.4
Press Ctrl-C to quit.

в hosts завернул site1.local и site2.local на 127.0.0.1
сделал для каждого по уникальной странице - domain работает,
единственно, что не понравилось - :8888 и необходимость в будущем править этот конфиг на продакшн,
но и это решаемо)))

работает, подтверждаю,
и напоминаю - это не единственный, а всего-лишь один из нескольких путей решения задачи из сабжа.
с 7-ой, аналогично.

0 Спасибо
Аватар пользователя ХулиGUN
4 months 3 недели назад ХулиGUN #
multpix написал:
в этом конкретном случае, для группы разрабов, возможно, оправдан докер с полноценным LNMP

хотя...

Единая среда разработки исключет всякие "У нас работает. Проблема не на нашей стороне"

0 Спасибо
Аватар пользователя ХулиGUN
4 months 3 недели назад ХулиGUN #

При чём в разных линуксах некоторые либы работают с "отличием"

0 Спасибо
Аватар пользователя multpix
4 months 3 недели назад multpix #
Ху ли GUN написал:

опубликую ка я к вечеру свой перевод про водбу и контейнеры)
http://drupal.ru/node/131184

0 Спасибо
Аватар пользователя Studio VIZA
4 months 3 недели назад Studio VIZA #

Ху ли GUN
Li Si Zsinn

0 Спасибо