Автор выбрал Фонд разнообразия в технологиях для получения пожертвования в рамках программы 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
для установки новейшей стабильной версии:
- заварить кран drud/ddev && заварить установку drud/ddev/ddev
Если вы предпочитаете самую новую версию, вы можете использовать brew
для установки ddev-edge
:
- заварить кран drud/ddev-edge && заварить установку drud/ddev-edge/ddev
Если у вас уже установлена версия DDEV или если вы когда-нибудь захотите обновить свою версию, закройте DDEV и используйте brew
для обновления вашей установки:
- ddev выключение питания
- заварить обновление Ddev
После установки или обновления DDEV запустите ddev version
, чтобы проверить ваше программное обеспечение:
- версия для разработчиков
Вы увидите такой вывод:
Выход 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
, чтобы узнать о некоторых распространенных командах:
- ддев
Вы увидите следующий результат:
Выход Создайте и поддерживайте локальную среду веб-разработки. Документы: 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):
- обновление sudo apt
Теперь установите некоторые необходимые пакеты из официального репозитория Ubuntu:
- sudo apt install build-essential apt-transport-https ca-certificates Software-Properties-Common Curl
Эти пакеты позволят вам загрузить сценарий установки DDEV из официального репозитория GitHub.
Теперь загрузите скрипт:
- завиток -O https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh
Прежде чем запускать скрипт, откройте его в nano
или предпочитаемом вами текстовом редакторе и проверьте его содержимое:
nano install_ddev.sh
После того, как вы просмотрели содержимое сценария и остались довольны, сохраните и закройте файл. Теперь вы готовы запустить сценарий установки.
Используйте команду chmod
, чтобы сделать скрипт исполняемым:
- chmod +x install_ddev.sh
Теперь запустите скрипт:
- ./install_ddev.sh
В процессе установки вам может быть предложено подтвердить некоторые настройки или ввести пароль sudo
. После завершения установки DDEV станет доступен в вашей операционной системе Linux.
Запустите ddev version
, чтобы проверить ваше программное обеспечение:
- версия для разработчиков
Вы увидите такой вывод:
Выход 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
без каких-либо дополнительных действий, чтобы узнать о некоторых распространенных командах:
- ддев
Вы увидите следующий результат:
Выход Создайте и поддерживайте локальную среду веб-разработки. Документы: 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
.
Создайте корневой каталог проекта и перейдите внутрь:
- мкдир d9test
- CD d9test
DDEV отлично справляется с созданием деревьев каталогов, соответствующих конкретным платформам CMS. Используйте команду ddev config
, чтобы создать структуру каталогов, специфичную для Drupal 9:
- конфигурация 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
для инициализации вашей платформы:
- начало 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
:
- докер , пс
Помимо любых других контейнеров, которые вы сейчас используете, вы найдете четыре новых контейнера, каждый из которых работает под своим образом: 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, его библиотеки и другие связанные ресурсы, а затем создаст проект по умолчанию:
- Композитор ddev создает «drupal/recommended-project»
Теперь загрузите последний компонент под названием Drush или Drupal Shell. В этом руководстве будет использоваться только одна команда drush
, и в этом руководстве представлена альтернатива, но drush
— это мощный интерфейс командной строки для разработки Drupal, который может повысить вашу эффективность.
Используйте ddev composer
для установки drush
:
- Композитору ddev требуется «drush/drush»
Теперь вы создали проект Drupal 9 по умолчанию и установили drush
. Теперь вы будете просматривать свой проект в браузере и настраивать параметры своего сайта.
Шаг 3 — Настройка вашего проекта Drupal 9
Теперь, когда вы установили Drupal 9, вы можете посетить свой новый проект в браузере. Для этого вы можете перезапустить ddev start
и скопировать один из двух URL-адресов, которые он выводит, или использовать следующую команду, которая автоматически запустит ваш сайт в новом окне браузера:
- запуск ddev
Вы столкнетесь со стандартным мастером установки Drupal.
Здесь у вас есть два варианта. Вы можете использовать этот пользовательский интерфейс и следовать инструкциям мастера во время установки, или вы можете вернуться к своему терминалу и передать команду drush
через ddev
. Последний вариант автоматизирует процесс установки и установит admin
в качестве имени пользователя и пароля.
Вариант 1 — Использование мастера
Вернитесь к мастеру в браузере. В разделе Choose language выберите язык из раскрывающегося меню и нажмите Save and continue . Теперь выберите профиль установки. Вы можете выбрать между Standard , Minimal и Demo . Сделайте свой выбор, а затем нажмите Save and continue . Drupal автоматически проверит ваши требования, настроит базу данных и установит ваш сайт. Последний шаг — настроить несколько конфигураций. Добавьте имя сайта и адрес электронной почты сайта, который заканчивается на ваш домен. Затем выберите имя пользователя и пароль. Выберите надежный пароль и храните свои учетные данные в безопасном месте. Наконец, добавьте личный адрес электронной почты, который вы регулярно проверяете, заполните региональные настройки и нажмите Save and continue .
Ваш новый сайт загрузится с приветственным сообщением.
Вариант 2 — Использование командной строки
В корневом каталоге вашего проекта запустите команду ddev exec
, чтобы установить сайт Drupal по умолчанию с помощью drush
:
- ddev exec drush site:install --account-name = admin --account-pass = admin
Это создаст ваш сайт так же, как мастер, но с некоторыми шаблонными конфигурациями. Ваше имя пользователя и пароль будут admin
.
Теперь запустите сайт, чтобы просмотреть его в браузере:
- запуск ddev
Теперь вы готовы приступить к созданию своего веб-сайта, но рекомендуется проверить правильность ваших разрешений для каталога /sites/web/default
. Пока вы работаете локально, это не является серьезной проблемой, но если вы перенесете эти разрешения на рабочий сервер, они создадут угрозу безопасности.
Шаг 4 — Проверка ваших разрешений
Во время установки мастера или при первой загрузке страницы приветствия вы можете увидеть предупреждение о настройках разрешений в вашем каталоге /sites/web/default
и одном файле внутри этого каталога: settings.php
.
После запуска сценария установки Drupal попытается установить разрешения каталога web/sites/default
на read
и execute
для всех групп: это настройка разрешений 555
. Он также попытается установить разрешения для default/settings.php
read-only
или 444
. Если вы столкнулись с этим предупреждением, запустите эти две команды chmod
из корневого каталога вашего проекта. Невыполнение этого требования создает угрозу безопасности:
- chmod 555 веб/сайты/по умолчанию
- chmod 444 веб/сайты/default/settings.php
Чтобы убедиться, что у вас есть правильные разрешения, запустите эту команду ls
с переключателями a
, l
, h
и d
:
- 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 , и появится еще одна страница.
Добавьте любой заголовок и контент, который вам нравится. Вы также можете добавить изображение, например одно из обоев DigitalOcean. Когда все будет готово, нажмите синюю кнопку save .
Ваше первое сообщение появится на вашем сайте.
Теперь вы разрабатываете веб-сайт Drupal 9 на своем локальном компьютере, даже не взаимодействуя с сервером, благодаря Docker и DDEV. На следующем этапе вы будете управлять контейнером DDEV для обеспечения вашего рабочего процесса.
Шаг 6 — Управление контейнером DDEV
Когда вы закончите разработку проекта или захотите сделать перерыв, вы можете остановить работу контейнера DDEV, не беспокоясь о потере данных. DDEV может управлять быстрым переключением контекста между многими проектами; это одна из самых полезных функций. Ваш код и данные всегда сохраняются в каталоге вашего проекта, даже после остановки или удаления контейнера DDEV.
Чтобы освободить ресурсы, вы можете остановить DDEV в любой момент. В корневом каталоге вашего проекта выполните следующую команду:
- ддев стоп
DDEV доступен глобально, поэтому вы можете запускать команды ddev
где угодно, если вы укажете проект DDEV:
- ддев стоп d9test
Вы также можете просмотреть все свои проекты одновременно, используя ddev list
:
- список ддевов
DDEV включает в себя множество других полезных команд.
Вы можете перезапустить DDEV и продолжить разработку локально в любое время.
Заключение
В этом руководстве вы использовали Docker и возможности контейнеризации для локальной разработки сайта Drupal с помощью DDEV. DDEV также хорошо интегрируется с многочисленными IDE и обеспечивает встроенную отладку PHP для Atom, PHPStorm и кода Visual Studio (vscode). Здесь вы также можете узнать больше о создании сред разработки для Drupal с помощью DDEV или разработке других PHP-фреймворков, таких как WordPress.