Автор выбрал Фонд разнообразия в технологиях для получения пожертвования в рамках программы 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 для установки новейшей стабильной версии:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Дерево каталогов Drupal 9.

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

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

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

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

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, его библиотеки и другие связанные ресурсы, а затем создаст проект по умолчанию:

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

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

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

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

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

Вы столкнетесь со стандартным мастером установки 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 :

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

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

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

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

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

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

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

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

Теперь вы готовы разработать веб-сайт 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 в любой момент. В корневом каталоге вашего проекта выполните следующую команду:

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

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

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

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

Заключение

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