Перейти к содержимому
Главная страница » Как разработать веб-сайт Drupal 9 на локальном компьютере с помощью Docker и DDEV

Как разработать веб-сайт Drupal 9 на локальном компьютере с помощью Docker и DDEV

Автор выбрал Фонд разнообразия в технологиях для получения пожертвования в рамках программы Write for DOnations.

Введение

DDEV — это инструмент с открытым исходным кодом, который использует Docker для создания локальных сред разработки для множества различных платформ PHP. Используя возможности контейнеризации, DDEV может значительно упростить работу над несколькими проектами, в которых используются несколько стеков технологий и несколько облачных серверов. DDEV включает шаблоны для WordPress, Laravel, Magento, TYPO3, Drupal и других.

Drupal 9 был выпущен 3 июня 2020 года для Drupal CMS. Drupal, известный своей простотой использования и огромной библиотекой модулей и тем, представляет собой популярную PHP-инфраструктуру для создания и поддержки различных веб-сайтов и приложений любого размера.

В этом руководстве вы начнете разработку веб-сайта Drupal 9 на своем локальном компьютере с использованием DDEV. Это позволит вам сначала создать свой веб-сайт, а затем, когда вы будете готовы, развернуть проект на рабочем сервере.

Предварительные условия

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

  • Один локальный компьютер под управлением Linux или macOS.

  • For macOS : менеджер пакетов Homebrew, который вы будете использовать для установки DDEV. Чтобы установить Homebrew на локальный компьютер, выполните Step 3 — Installing and Setting up Homebrew в этом руководстве по Ruby.

  • Docker и Docker Compose установлены на вашем локальном компьютере.

    • For Linux : вы можете установить Docker и Docker Compose, следуя этим двум руководствам: «Как установить и использовать Docker» и «Как установить Docker Compose». Выберите свой дистрибутив Linux из списка и следуйте прилагаемым инструкциям.
    • For macOS : Docker Compose раньше был доступен как часть Docker Toolbox, но теперь Docker Toolbox является устаревшим решением. Сегодня Docker официально рекомендует вам установить Docker Desktop, который включает в себя Docker Compose, Docker Engine и многое другое. Следуйте официальному руководству Docker по установке Docker Desktop на macOS. Для получения дополнительной информации вы можете прочитать официальное руководство по началу работы с Docker Desktop. Если вы ранее использовали Docker Toolbox для установки различных инструментов Docker, вы можете прочитать эту официальную статью о различиях между Docker Toolbox и Docker Desktop и о том, как они могут сосуществовать.

Note: Drupal 9 можно разработать с использованием DDEV на удаленном сервере, но вам понадобится решение для доступа localhost через веб-браузер. Команда DDEV ddev share работает с ngrok, который создает безопасный туннель к вашему серверу, чтобы вы и другие заинтересованные стороны могли просматривать ваш сайт разработки. Для личного использования вы также можете установить графический интерфейс на свой удаленный сервер и получить доступ к сайту разработки через веб-браузер внутри этого интерфейса. Для этого вы можете следовать нашему руководству по установке и настройке VNC в Ubuntu 20.04. Чтобы получить еще более быстрое решение с графическим интерфейсом, вы можете воспользоваться нашим руководством по настройке удаленного рабочего стола с помощью X2Go в Ubuntu 20.04.

Шаг 1 — Установка DDEV

На этом этапе вы установите DDEV на свой локальный компьютер. Вариант 1 включает инструкции для macOS, а Вариант 2 — инструкции для Linux. Это руководство было протестировано на DDEV версии 1.15.0.

Вариант 1 — Установка DDEV на macOS

DDEV советует пользователям macOS устанавливать свой инструмент с помощью менеджера пакетов Homebrew. Используйте следующую команду brew для установки новейшей стабильной версии:

  1. заварить кран drud/ddev && заварить установку drud/ddev/ddev

Если вы предпочитаете самую новую версию, вы можете использовать brew для установки ddev-edge :

  1. заварить кран drud/ddev-edge && заварить установку drud/ddev-edge/ddev

Если у вас уже установлена версия DDEV или если вы когда-нибудь захотите обновить свою версию, закройте DDEV и используйте brew для обновления вашей установки:

  1. ddev выключение питания
  2. заварить обновление Ddev

После установки или обновления DDEV запустите ddev version , чтобы проверить ваше программное обеспечение:

  1. версия для разработчиков

Вы увидите такой вывод:

Выход
DDEV-Local версия v1.15.0 commit v1.15.0 db drud/ddev-dbserver-mariadb-10.2:v1.15.0 dba phpmyadmin/phpmyadmin:5 ddev-ssh-agent drud/ddev-ssh-agent:v1.15.0 docker 19.03. 8 docker-compose 1.25.5 ОС Дарвин маршрутизатор drud/ddev-router:v1.15.0 web drud/ddev-webserver:v1.15.0

DDEV включает мощный CLI или интерфейс командной строки. Запустите ddev , чтобы узнать о некоторых распространенных командах:

  1. ддев

Вы увидите следующий результат:

Выход
Создайте и поддерживайте локальную среду веб-разработки. Документы: https://ddev.readthedocs.io Поддержка: https://ddev.readthedocs.io/en/stable/#support Использование: ddev [команда] Доступные команды: auth Коллекция команд аутентификации композитор Выполняет команду композитора внутри конфигурация веб-контейнера Создание или изменение конфигурации проекта ddev в текущем каталоге debug Коллекция команд отладки delete Удаление всей информации о проекте (включая базу данных) для существующего проекта. описание Получите подробное описание работающего проекта ddev. exec Выполняет команду оболочки в контейнере для службы. По умолчанию использует веб-сервис. Export-db Дамп базы данных в файл или в стандартный вывод. Справка. Справка по любой команде. Имя хоста. Управляйте записями в файле хоста. import-db Импортируйте файл sql в проект. import-files Перенесите каталог загруженных файлов существующего проекта в общедоступный каталог загрузки вашего проекта по умолчанию. list Список журналов проектов. Получите журналы запущенных служб. пауза использует «остановку докера», чтобы приостановить/остановить контейнеры, принадлежащие проекту. poweroff Полностью остановить все проекты и контейнеры. Извлечь файлы и базу данных с помощью настроенного плагина провайдера. перезапустить Перезапустить проект или несколько проектов. restore-snapshot Восстановить базу данных проекта до предоставленной версии моментального снимка. сиквелпро Эта команда недоступна, так как сиквел pro.app не установлен. Поделитесь проектом в Интернете через ngrok. снимок Создайте снимок базы данных для одного или нескольких проектов. ssh Запускает сеанс оболочки в контейнере для службы. По умолчанию использует веб-сервис. start Запустить проект ddev. stop Остановить и удалить контейнеры проекта. Ничего не потеряет и не повредит, если вы не добавите --remove-data. version print Версия ddev и версии компонентов Флаги: -h, --help help for ddev -j, --json-output Если true, вывод, ориентированный на пользователя, будет в формате JSON. -v, --version версия для ddev Используйте «ddev [команда] --help» для получения дополнительной информации о команде.

Для получения дополнительной информации об использовании интерфейса командной строки DDEV посетите официальную документацию DDEV.

Установив DDEV на ваш локальный компьютер, вы готовы установить Drupal 9 и приступить к разработке веб-сайта.

Вариант 2 — Установка DDEV в Linux

В операционной системе Linux вы можете установить DDEV с помощью Homebrew для Linux или с помощью официального сценария установки. В Ubuntu начните с обновления списка пакетов в менеджере пакетов apt (вы можете использовать apt в Debian, в противном случае используйте эквивалентный менеджер пакетов, связанный с вашим дистрибутивом Linux):

  1. обновление sudo apt

Теперь установите некоторые необходимые пакеты из официального репозитория Ubuntu:

  1. sudo apt install build-essential apt-transport-https ca-certificates Software-Properties-Common Curl

Эти пакеты позволят вам загрузить сценарий установки DDEV из официального репозитория GitHub.

Теперь загрузите скрипт:

  1. завиток -O https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh

Прежде чем запускать скрипт, откройте его в nano или предпочитаемом вами текстовом редакторе и проверьте его содержимое:

 nano install_ddev.sh

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

Используйте команду chmod , чтобы сделать скрипт исполняемым:

  1. chmod +x install_ddev.sh

Теперь запустите скрипт:

  1. ./install_ddev.sh

В процессе установки вам может быть предложено подтвердить некоторые настройки или ввести пароль sudo . После завершения установки DDEV станет доступен в вашей операционной системе Linux.

Запустите ddev version , чтобы проверить ваше программное обеспечение:

  1. версия для разработчиков

Вы увидите такой вывод:

Выход
DDEV-Local версия v1.15.0 commit v1.15.0 db drud/ddev-dbserver-mariadb-10.2:v1.15.0 dba phpmyadmin/phpmyadmin:5 ddev-ssh-agent drud/ddev-ssh-agent:v1.15.0 docker 19.03. 8 docker-compose 1.25.5 ОС Linux маршрутизатор drud/ddev-router:v1.15.0 web drud/ddev-webserver:v1.15.0

DDEV — это мощный CLI или интерфейс командной строки. Запустите ddev без каких-либо дополнительных действий, чтобы узнать о некоторых распространенных командах:

  1. ддев

Вы увидите следующий результат:

Выход
Создайте и поддерживайте локальную среду веб-разработки. Документы: https://ddev.readthedocs.io Поддержка: https://ddev.readthedocs.io/en/stable/#support Использование: ddev [команда] Доступные команды: auth Коллекция команд аутентификации композитор Выполняет команду композитора внутри конфигурация веб-контейнера Создание или изменение конфигурации проекта ddev в текущем каталоге debug Коллекция команд отладки delete Удаление всей информации о проекте (включая базу данных) для существующего проекта. описание Получите подробное описание работающего проекта ddev. exec Выполняет команду оболочки в контейнере для службы. По умолчанию использует веб-сервис. Export-db Дамп базы данных в файл или в стандартный вывод. Справка. Справка по любой команде. Имя хоста. Управляйте записями в файле хоста. import-db Импортируйте файл sql в проект. import-files Перенесите каталог загруженных файлов существующего проекта в общедоступный каталог загрузки вашего проекта по умолчанию. list Список журналов проектов. Получите журналы запущенных служб. пауза использует «остановку докера», чтобы приостановить/остановить контейнеры, принадлежащие проекту. poweroff Полностью остановить все проекты и контейнеры. Извлечь файлы и базу данных с помощью настроенного плагина провайдера. перезапустить Перезапустить проект или несколько проектов. restore-snapshot Восстановить базу данных проекта до предоставленной версии моментального снимка. сиквелпро Эта команда недоступна, так как сиквел pro.app не установлен. Поделитесь проектом в Интернете через ngrok. снимок Создайте снимок базы данных для одного или нескольких проектов. ssh Запускает сеанс оболочки в контейнере для службы. По умолчанию использует веб-сервис. start Запустить проект ddev. stop Остановить и удалить контейнеры проекта. Ничего не потеряет и не повредит, если вы не добавите --remove-data. version print Версия ddev и версии компонентов Флаги: -h, --help help for ddev -j, --json-output Если true, вывод, ориентированный на пользователя, будет в формате JSON. -v, --version версия для ddev Используйте «ddev [команда] --help» для получения дополнительной информации о команде.

Для получения дополнительной информации об использовании CLI DDEV вы можете посетить официальную документацию DDEV.

Установив DDEV на ваш локальный компьютер, вы готовы развернуть Drupal 9 и приступить к разработке веб-сайта.

Шаг 2. Развертывание нового сайта Drupal 9 с использованием DDEV

Теперь, когда DDEV запущен, вы будете использовать его для создания файловой системы, специфичной для Drupal, установки Drupal 9, а затем запуска стандартного проекта веб-сайта.

Сначала вы создадите корневой каталог проекта, а затем будете перемещаться внутри него. Вы будете запускать все оставшиеся команды из этого места. В этом уроке будет использоваться d9test , но вы можете назвать свой каталог как-нибудь по-другому. Однако обратите внимание, что DDEV плохо обрабатывает имена, написанные через дефис. Рекомендуется избегать таких имен каталогов, как my-project или drupal-site-1 .

Создайте корневой каталог проекта и перейдите внутрь:

  1. мкдир d9test
  2. CD d9test

DDEV отлично справляется с созданием деревьев каталогов, соответствующих конкретным платформам CMS. Используйте команду ddev config , чтобы создать структуру каталогов, специфичную для Drupal 9:

  1. конфигурация ddev --project-type = drupal9 --docroot = web --create-docroot

Вы увидите такой вывод:

Выход
Создание новой конфигурации проекта ddev в текущем каталоге (/Users/ Сэмми / d9test ) После завершения ваша конфигурация будет записана в /Users/. Сэмми / d9test /.ddev/config.yaml Создан корневой документ в /Users/. Сэмми / d9test /web Вы указали тип проекта drupal9, но проект этого типа не найден в /Users/ Сэмми / d9test /web Обеспечение прав на запись для d9new Файл settings.php не существует, создайте его. Существующий файл settings.php включает settings.ddev.php. Настройка завершена. Теперь вы можете запустить «ddev start».

Поскольку вы передали --project-type= drupal9 в команду ddev config , DDEV создал несколько подкаталогов и файлов, которые представляют организацию по умолчанию для веб-сайта Drupal. Дерево каталогов вашего проекта теперь будет выглядеть так:

Дерево каталогов Drupal 9.
 . ├── .ddev │  ├── .gitignore │  ├── config.yaml │  ├── db-build │  │  └── Dockerfile.example │  └── web-build │  └── Dockerfile.example └── web └── sites └── default ├── .gitignore ├── settings.ddev.php └── settings.php 6 directories, 7 files

.ddev/ будет основной папкой для конфигурации ddev. web/ будет корневым документом вашего нового проекта; он будет содержать несколько конкретных settings. файлы. Теперь у вас есть начальная основа для вашего нового проекта Drupal.

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

Используйте команду ddev start для инициализации вашей платформы:

  1. начало ddev

Это позволит создать все контейнеры на основе Docker для вашего проекта, включая веб-контейнер, контейнер базы данных и phpmyadmin. Когда инициализация завершится, вы увидите такой вывод (номер вашего порта может отличаться):

 ... [secondary_label Output] Successfully started d9test Project can be reached at http:// d9test. .ddev.сайт http://127.0.0.1: 32773

Note: Помните, что DDEV здесь незаметно запускает контейнеры Docker. Если вы хотите просмотреть эти контейнеры или убедиться, что они работают, вы всегда можете использовать команду docker ps :

  1. докер , пс

Помимо любых других контейнеров, которые вы сейчас используете, вы найдете четыре новых контейнера, каждый из которых работает под своим образом: php-myadmin , ddev-webserver , ddev-router и ddev-dbserver-mariadb .

ddev start успешно создал ваши контейнеры и предоставил вам выходные данные с двумя URL-адресами. Хотя в этих выводах говорится, что ваш проект «можно найти по http:// d9test .ddev.site и http://127.0.0.1: 32773 », посещение этих URL-адресов прямо сейчас приведет к ошибке. Начиная с Drupal 8, ядро Drupal и модули Contrib функционируют как зависимости. Поэтому вам сначала необходимо завершить установку Drupal с помощью Composer, менеджера пакетов для проектов PHP, прежде чем что-либо будет загружаться в вашем веб-браузере.

Одна из наиболее полезных и элегантных функций DDEV заключается в том, что вы можете передавать команды Composer через CLI DDEV в вашу контейнерную среду. Это означает, что вы можете отделить конкретную конфигурацию вашего компьютера от среды разработки. Вам больше не придется решать различные проблемы с путями к файлам, зависимостями и версиями, которые обычно сопровождают локальную разработку PHP. Более того, вы можете быстро переключаться между несколькими проектами, используя разные платформы и технологические стеки, с минимальными усилиями.

Используйте команду ddev composer для загрузки drupal/recommended-project . Это загрузит ядро Drupal, его библиотеки и другие связанные ресурсы, а затем создаст проект по умолчанию:

  1. Композитор ddev создает «drupal/recommended-project»

Теперь загрузите последний компонент под названием Drush или Drupal Shell. В этом руководстве будет использоваться только одна команда drush , и в этом руководстве представлена альтернатива, но drush — это мощный интерфейс командной строки для разработки Drupal, который может повысить вашу эффективность.

Используйте ddev composer для установки drush :

  1. Композитору ddev требуется «drush/drush»

Теперь вы создали проект Drupal 9 по умолчанию и установили drush . Теперь вы будете просматривать свой проект в браузере и настраивать параметры своего сайта.

Шаг 3 — Настройка вашего проекта Drupal 9

Теперь, когда вы установили Drupal 9, вы можете посетить свой новый проект в браузере. Для этого вы можете перезапустить ddev start и скопировать один из двух URL-адресов, которые он выводит, или использовать следующую команду, которая автоматически запустит ваш сайт в новом окне браузера:

  1. запуск ddev

Вы столкнетесь со стандартным мастером установки Drupal.

Установщик Drupal 9 из браузера

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

Вариант 1 — Использование мастера

Вернитесь к мастеру в браузере. В разделе Choose language выберите язык из раскрывающегося меню и нажмите Save and continue . Теперь выберите профиль установки. Вы можете выбрать между Standard , Minimal и Demo . Сделайте свой выбор, а затем нажмите Save and continue . Drupal автоматически проверит ваши требования, настроит базу данных и установит ваш сайт. Последний шаг — настроить несколько конфигураций. Добавьте имя сайта и адрес электронной почты сайта, который заканчивается на ваш домен. Затем выберите имя пользователя и пароль. Выберите надежный пароль и храните свои учетные данные в безопасном месте. Наконец, добавьте личный адрес электронной почты, который вы регулярно проверяете, заполните региональные настройки и нажмите Save and continue .

Приветственное сообщение Drupal 9 с предупреждением о разрешениях

Ваш новый сайт загрузится с приветственным сообщением.

Вариант 2 — Использование командной строки

В корневом каталоге вашего проекта запустите команду ddev exec , чтобы установить сайт Drupal по умолчанию с помощью drush :

  1. ddev exec drush site:install --account-name = admin --account-pass = admin

Это создаст ваш сайт так же, как мастер, но с некоторыми шаблонными конфигурациями. Ваше имя пользователя и пароль будут admin .

Теперь запустите сайт, чтобы просмотреть его в браузере:

  1. запуск ddev

Теперь вы готовы приступить к созданию своего веб-сайта, но рекомендуется проверить правильность ваших разрешений для каталога /sites/web/default . Пока вы работаете локально, это не является серьезной проблемой, но если вы перенесете эти разрешения на рабочий сервер, они создадут угрозу безопасности.

Шаг 4 — Проверка ваших разрешений

Во время установки мастера или при первой загрузке страницы приветствия вы можете увидеть предупреждение о настройках разрешений в вашем каталоге /sites/web/default и одном файле внутри этого каталога: settings.php .

После запуска сценария установки Drupal попытается установить разрешения каталога web/sites/default на read и execute для всех групп: это настройка разрешений 555 . Он также попытается установить разрешения для default/settings.php read-only или 444 . Если вы столкнулись с этим предупреждением, запустите эти две команды chmod из корневого каталога вашего проекта. Невыполнение этого требования создает угрозу безопасности:

  1. chmod 555 веб/сайты/по умолчанию
  2. chmod 444 веб/сайты/default/settings.php

Чтобы убедиться, что у вас есть правильные разрешения, запустите эту команду ls с переключателями a , l , h и d :

  1. ls -alhd web/sites/default web/sites/default/settings.php

Убедитесь, что ваши разрешения соответствуют следующему выводу:

Выход
др-хр-хр-х 8 сотрудников Сэмми 256 21 июля 12:56 веб/сайты/по умолчанию -р--р--р-- 1 персонал Сэмми 249 21 июля 12:12 web/sites/default/settings.php

Теперь вы готовы разработать веб-сайт Drupal 9 на своем локальном компьютере.

Шаг 5 — Создание вашего первого поста в Drupal

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

На начальной странице вашего сайта нажмите кнопку Content в левом верхнем углу верхнего меню. Теперь нажмите синюю кнопку add content . Появится новая страница. Нажмите Article , и появится еще одна страница.

Drupal 9 Создать статью

Добавьте любой заголовок и контент, который вам нравится. Вы также можете добавить изображение, например одно из обоев DigitalOcean. Когда все будет готово, нажмите синюю кнопку save .

Ваше первое сообщение появится на вашем сайте.

Drupal 9 Создал сообщение

Теперь вы разрабатываете веб-сайт Drupal 9 на своем локальном компьютере, даже не взаимодействуя с сервером, благодаря Docker и DDEV. На следующем этапе вы будете управлять контейнером DDEV для обеспечения вашего рабочего процесса.

Шаг 6 — Управление контейнером DDEV

Когда вы закончите разработку проекта или захотите сделать перерыв, вы можете остановить работу контейнера DDEV, не беспокоясь о потере данных. DDEV может управлять быстрым переключением контекста между многими проектами; это одна из самых полезных функций. Ваш код и данные всегда сохраняются в каталоге вашего проекта, даже после остановки или удаления контейнера DDEV.

Чтобы освободить ресурсы, вы можете остановить DDEV в любой момент. В корневом каталоге вашего проекта выполните следующую команду:

  1. ддев стоп

DDEV доступен глобально, поэтому вы можете запускать команды ddev где угодно, если вы укажете проект DDEV:

  1. ддев стоп d9test

Вы также можете просмотреть все свои проекты одновременно, используя ddev list :

  1. список ддевов

DDEV включает в себя множество других полезных команд.

Вы можете перезапустить DDEV и продолжить разработку локально в любое время.

Заключение

В этом руководстве вы использовали Docker и возможности контейнеризации для локальной разработки сайта Drupal с помощью DDEV. DDEV также хорошо интегрируется с многочисленными IDE и обеспечивает встроенную отладку PHP для Atom, PHPStorm и кода Visual Studio (vscode). Здесь вы также можете узнать больше о создании сред разработки для Drupal с помощью DDEV или разработке других PHP-фреймворков, таких как WordPress.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *