Drupal — это система управления контентом (CMS), написанная на PHP и распространяемая по универсальной общественной лицензии GNU с открытым исходным кодом. Люди и организации по всему миру используют Drupal для управления правительственными сайтами, ведения личных блогов, бизнеса и не только. Уникальные отличия Drupal от других структур CMS: растущее сообщество и набор функций, которые включают безопасные процессы, надежную работу и адаптивность.
Для Drupal необходимо установить стек LAMP (Linux, Apache, MySQL и PHP) или LEMP (Linux, Nginx, MySQL и PHP), но установка компонентов по отдельности занимает много времени. Для упрощения процесса установки Drupal мы можем использовать такие инструменты, как Docker и Docker Compose. В этом обучающем руководстве будут использованы образы Docker для установки отдельных компонентов в Docker-контейнерах. С помощью Docker Compose мы можем определять и управлять несколькими контейнерами для базы данных, приложения, а также взаимодействием/коммуникацией между ними.
В этом обучающем руководстве мы установим Drupal с помощью Docker Compose для возможности контейнеризации и развертывания нашего веб-сайта Drupal на серверах. Мы запустим контейнеры для базы данных MySQL, веб-сервера Nginx и системы Drupal. Также мы защитим нашу установку, получив сертификаты TLS/SSL с Let’s Encrypt для домена, который мы хотим ассоциировать с нашим сайтом. Наконец, мы настроим задание cron для обновления ваших сертификатов, чтобы домен оставался защищенным.
Для данного обучающего руководства нам потребуется следующее:
sudo
и активный брандмауэр. Дополнительную информацию о настройке этих параметров см. в руководстве по первоначальной настройке сервера.your_domain
. Вы можете получить бесплатный домен наFreenom или зарегистрировать доменное имя по вашему выбору.your_domain
указывает на публичный IP-адрес вашего сервера.www.``your_domain
указывает на публичный IP-адрес вашего сервера.Перед запуском контейнеров нам нужно определить конфигурацию для нашего веб-сервера Nginx. Наш файл конфигурации будет включать несколько специфических для Drupal блоков расположения наряду с блоками расположения, которые будут направлять передаваемые запросы верификации Let’s Encrypt клиенту Certbot для автоматизированного обновления сертификатов.
Вначале создадим директорию проекта для нашей настройки Drupal с именем drupal
:
mkdir drupal
Перейдите в недавно созданную директорию:
cd drupal
Теперь мы можем создать директорию для нашего файла конфигурации:
mkdir nginx-conf
Откройте файл с помощью nano или своего любимого редактора:
nano nginx-conf/nginx.conf
В этом файле мы добавим серверный блок с директивами для имени нашего сервера и корневой директории документов, а также блок расположения для направления запросов сертификатов от клиента Certbot, обработки PHP и запросов статичных активов.
Добавьте в этот файл следующий код. Обязательно замените your_domain
на ваше доменное имя:
#drupal #docker #docker compose #nginx-conf #ubuntu 18.04