Для установки сайта Drupal 10 или 11 на локальный сервер я использую связку drupal/recommended-project и предварительно настроенный OpenServer.
Моя конфигурация: Windows 10 + надстройка Ubuntu + Visual Studio Code (терминал) + OpenServer + установленный Composer + Drush.
Если у вас возникают ошибки из-за нехватки памяти, используйте команды с увеличением лимита памяти:
php -d memory_limit=-1 $(which composer) вместо обычного composer.
Теперь пошагово:
- Запускаем Visual Studio Code и открываем папку domains OpenServer.
Устанавливаем сайт командой:
composer create-project drupal/recommended-project my-projectили с увеличением памяти:
php -d memory_limit=-1 $(which composer) create-project drupal/recommended-project my-project"my-project" — название вашего проекта, будет создана соответствующая папка.
- Перезапускаем сервер и заходим на сайт через браузер. При установке в дополнительных настройках базы данных указываем хост 127.0.0.1.
Открываем терминал и переходим в папку проекта:
cd my-projectУдаляем не нужный модуль:
composer remove drupal/core-project-messageили:
php -d memory_limit=-1 $(which composer) remove drupal/core-project-messageУстанавливаем Drush:
composer require drush/drushили:
php -d memory_limit=-1 $(which composer) require drush/drush- Редактируем файл web/sites/default/settings.php:
Добавляем папку для приватных файлов:
$settings['file_private_path'] = '../private';Настраиваем доверенный домен:
$settings['trusted_host_patterns'] = [ '^my-project\.localhost$', ];Изменяем директорию синхронизации конфигураций:
$settings['config_sync_directory'] = '../config/sync';
Запускаем скрипт обновления:
drush updbи очищаем кеш:
drush crДобавляем поддержку Asset Packagist:
composer require oomphinc/composer-installers-extenderили:
php -d memory_limit=-1 $(which composer) require oomphinc/composer-installers-extenderРедактируем composer.json, добавляя репозиторий и настройки путей для библиотек.
Добавляем базовые зависимости в composer.json:
"require": { "bower-asset/blazy": "^1.8", "bower-asset/photoswipe": "^5.4", "bower-asset/slick-carousel": "1.6.0" }Устанавливаем основные модули Drupal:
composer require drupal/admin_toolbar drupal/antibot drupal/easy_breadcrumb drupal/eu_cookie_compliance drupal/field_group drupal/image_effects drupal/lang_dropdown drupal/libraries drupal/metatag drupal/minifyhtml drupal/pathauto drupal/photoswipe drupal/redirect drupal/schema_metatag drupal/simple_sitemap drupal/slick drupal/slick_extras drupal/slick_views drupal/superfish drupal/webform drupal/youtubeДля slick-carousel добавляем скрипт в composer.json:
"scripts": { "pre-install-cmd": [], "pre-update-cmd": [], "post-install-cmd": [ "rm -f web/robots.txt", "rm -f web/INSTALL.txt", "rm -f web/README.md", "rm -f web/README.txt", "rm -f web/example.gitignore" ], "post-update-cmd": [ "rm -f web/robots.txt", "rm -f web/INSTALL.txt", "rm -f web/README.md", "rm -f web/README.txt", "rm -f web/example.gitignore" ] },- В админке Drupal включаем необходимые модули.
Добавляем поддержку Webform библиотек:
composer require wikimedia/composer-merge-pluginи редактируем composer.json, подключая файл
web/modules/contrib/webform/composer.libraries.json.Обновляем зависимости:
composer update --with-dependencies- Добавляем нужные языки и включаем перевод контента:
Экспортируем конфигурацию:
drush cex -y- Настраиваем шаблоны синонимов URL и создаём базовые страницы: главная, контакты, ошибки 404 и 403, политика конфиденциальности для модуля EU Cookie Compliance.
- В разделе настроек сайта указываем ссылки на главную и страницы ошибок:
/admin/config/system/site-information. - Добавляем файл .gitignore в корень проекта.
- Создаём репозиторий на GitHub или другом сервисе контроля версий для хранения проекта и работы с ним.