Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Мультисайт Drupal 8

22/04/2020, by maria

В следующем руководстве будут освещены шаги, необходимые для настройки мультисайта Drupal 8. Это руководство находится в стадии разработки, представлены только некоторые примеры конфигураций. Доступны другие варианты, такие как HTTPS, другие веб-серверы и базы данных, а также более усовершенствованные конфигурации виртуальных хостов и т. д.

Однако следует отметить, что использование хостинг-системы Aegir является предпочтительным. Он выполняет всю тяжелую работу за вас, используя безопасные передовые практики, включая автоматическую настройку виртуальных хостов для Apache и Nginx, добавление поддержки HTTPS, запуск команд Composer и т. д. см. Документацию по настройке «платформы», Aegir-speak для многосайтовая кодовая база.

Обзор процесса:

1. Установите экземпляр Drupal 8, который будет выполнять роль корневого сайта для нашего многоузлового экземпляра. В нашем примере корневой сайт будет называться d8multisite, будет доступен на d8multisite.com и будет установлен на /var/www/d8multisite.

2. Создайте сайт в мультисайт с названием site1, который доступен на site1.d8multisite.com

3. Настройте site1, чтобы иметь свои собственные модули вне корневого сайта.

Шаг 1: создание мастер-сайта

Чтобы начать процесс, установите копию Drupal 8 на свой сервер. Прочитайте документы по установке Drupal 8, если вы не знакомы.

В этом примере мы устанавливаем Drupal со следующими шагами:

1.1: Создайте базу данных для многосайтового корневого сайта, например: d8multisite.

1.2: Загрузите и извлеките копию Drupal 8 в свой веб-каталог.

1.3. Создайте определение виртуального хоста для корневого сайта. Читайте о конфигурациях виртуальных хостов. Пример конфигурации виртуального хоста Apache: Для Nginx смотрите официальный рецепт.

<VirtualHost *: 80>

   # настройка виртуального хоста для многосайтового корневого сайта Drupal 8

   ServerAdmin me@domain.com
   DocumentRoot / var / www / d8multisite
   Имя_сервера d8multisite.com
   ServerAlias www.d8multisite.com
  
   <Directory />
     Опции FollowSymLinks
     AllowOverride Нет
   </ Directory>
  
   <Directory / var / www / d8multisite>
     Опции Индексы FollowSymLinks MultiViews
     AllowOverride All
     Заказать разрешить, отказать
     Разрешить от всех
   </ Directory>

   ErrorLog $ {APACHE_LOG_DIR} /d8multisite_error.log
   LogLevel предупреждают
   CustomLog $ {APACHE_LOG_DIR} /d8multisite_access.log в сочетании

</ VirtualHost>

1.4: Установите Drupal, посетив d8multisite.com и следуя интерфейсу установки.

Шаг 2. Настройте первый сайт для мультисайта

Теперь, когда у нас настроен корневой сайт, мы можем приступить к настройке нашего первого сайта с именем site1. Вот шаги в этом процессе:

2.1. Создайте папку для site1 на своем мультисайте: /d8multisite/sites/site1.d8multisite.com

2.2: Создать базу данных для сайта 1, например: d8multisite_site1

2.3. Сделайте копию /d8multisite/sites/example.sites.php с именем /d8multisite/sites/sites.php

2.4: Отредактируйте sites.php так, чтобы конец файла выглядел так:

# make the root drupal site aware of site1:
$sites['site1.d8multisite.com'] = 'site1.d8multisite.com';

2.5: Создайте виртуальный хост для site1. Обратите внимание, что этот виртуальный хост должен указывать на корневой сайт, а не на его подкаталог. Обратите внимание, что вы также можете отказаться от создания новой конфигурации виртуального хоста для этого сайта и только для нового сайта в качестве ServerAlias для корневого сайта. В этом примере Apache мы, однако, создадим отдельный виртуальный хост для site1:

<VirtualHost *:80>
  ServerAdmin me@domain.com
  DocumentRoot /var/www/d8multisite
  ServerName site1.d8multisite.com
  
  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>
  
  <Directory /var/www/d8multisite>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/site1-d8multisite_error.log
  LogLevel warn
  CustomLog ${APACHE_LOG_DIR}/site1-d8multisite_error.log combined

</VirtualHost>

2.6. Скопируйте /d8multisite/sites/default/default.settings.php в каталог нового сайта в виде settings.php:

#from the drupal root folder
cp sites/default/default.settings.php sites/site1.d8multisite.com/settings.php

2.7: Завершите процесс установки Drupal для site1, посетив домен сайта.

Вы можете повторять эти шаги каждый раз, когда хотите создать сайт на своем мультисайте. Вы также можете использовать такие домены, как example.com и site1.anotherdomain.com. Подробнее о доменах, URL-адресах и именах подкаталогов сайтов.

Шаг 3. Включите модули для каждого сайта

В некоторых случаях вы можете захотеть, чтобы один из ваших сайтов в вашем мультисайте имел свои собственные модули. Чтобы включить это, вам просто нужно создать соответствующие папки в папке целевого сайта. См. Структура многосайтовых папок в Drupal 8.

В этом примере мы позволим site1 иметь свои собственные модули:

1. Создайте папку «modules» в подкаталоге site1: /d8multisite/sites/site1.d8multisite.com/modules

2. Предоставьте apache доступ для записи в эту папку с помощью chown www-data /d8multisite/sites/site1.d8multisite.com/modules 

3. Проверьте это:
                1) Переместитесь из подкаталога site1 (т.е. в корневой сайт) и установите модуль Pathauto с помощью drush drush dl pathauto

                2) Перейдите в подкаталог site1 и установите модуль ds с помощью drush drush dl ds

                3) Посетите оба сайта и подтвердите:
                                            - Pathauto доступен на обоих сайтах
                                            - Display Suite доступен только на сайте1

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

Использование drush в мультисайте

Вы можете использовать -l option:

drush -l example.com command

или псевдоним сайта:

drush @alias command

Чтобы проверить, какие псевдонимы используются, выполните:

drush site:alias

Примером его вывода может быть:

@sub1.dev ':
   root: /var/www/mydomain.com/web
   uri: «https://sub1.mydomain.com»
@default.dev ':
   root: /var/www/mydomain.com/web
   uri: «https://sub2.mydomain.com/»
@third.dev ':
   root: /var/www/mydomain.com/web
   uri: «https://thirddomain.com»

И правильная команда drush может быть:

drush @sub1 updb

Примечание: мы не используем «.dev» в псевдониме

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.