Самый простой способ попробовать Drupal 8 на вашем компьютере это запустить команду quick:start
.
drupal quick:start
Примечание: Сначала вы должны выполнить
drupal init
, чтобы скопировать~/.console/chain/quick-start.yml
в вашей локальной системе.
Команда chain
помогает вам автоматизировать извлечение команд, позволяет вам определить внешний YAML файл содержащий определение, опции и аргументы нескольких команд и запустить список этих команд в порядке определенном в файле.
Содержимое приведенного ~/.console/chain/quick-start.yml
файла:
# Как использовать # quick:start --directory="/path/to/drupal-project/" # quick:start --directory="/path/to/drupal-project/" --profile="minimal" # quick:start --repository="acquia/lightning-project:^8.1" --directory="/path/to/drupal-project/" --profile="lightning" command: name: quick:start description: 'Download, install and serve a new Drupal project' vars: repository: - drupal-composer/drupal-project:8.x-dev - acquia/lightning-project - acquia/reservoir-project profile: standard commands: # Создать Drupal проект используя DrupalComposer - command: exec arguments: bin: composer create-project %{{repository}} %{{directory}} --prefer-dist --no-progress --no-interaction # Установить Drupal - command: exec arguments: bin: drupal site:install %{{profile}} --root=%{{directory}} --db-type="sqlite" --no-interaction # Запустить встроенный PHP сервер - command: exec arguments: bin: drupal server --root=%{{directory}}ß
Конфигурация представленная выше запустит несколько команд, в этом случае команды, которые скачают и установят Drupal, используя SQLite, и в итоге запустят встроенный PHP сервер, теперь вам надо только запустить браузер и ввести 127.0.0.1:8088.
Вы можете скопировать или сделать изменения в приведенных YAML файлах, чтобы добавить команды для скачивания модулей module:download
, для установки модулей module:install
, импорта конфигурации config:import
и для восстановления базы данных database:restore
или любой другой команды представленной DrupalConsole или команды из вашего собственного модуля.
docs.drupalconsole.com
Установка Друпал 8 на Open Server
Для начала нам нужно скачать. Это можно сделать с официального сайта Open Server:
http://open-server.ru/download/
Качать лучше всего Ultimate версию, которая весит больше 500 МБ. Качать с официального сайта довольно долго, скорость отдачи небольшая, поэтому лучше всего скачать Open Server с торрентов, например с Rutracker.org:
http://rutracker.org/forum/tracker.php?nm=open%20server
Установка Open Server очень простая, достаточно просто жать кнопку «Далее».

Устанавливайте все как есть на диск C, так будет проще в будущем, потому что все руководства предполагают дефолтное расположение файлов. Сам опен сервер у меня лежит в папке C:/OpenServer, запускать нужно x64 версию, если у вас 64-битная операционная система.
После запуска у вас появится такой вот флажок, если он красный, то нужно нажать правой кнопкой и выбрать «Запустить». Если флажок зеленный, то значит у вас все заработало.
Также есть еще один момент, нужно убрать в Skype использование 80го порта. Для этого зайдите в настройки скайпа Дополнительные -> Соединение -> Использовать 80 и 443 дополнительные порты, снимите эту галочку. И перезапустите флажок опен сервера.
Дальше давайте зайдем в опен сервер и посмотрим где будут размещаться наши сайты. Размещаются наши сайты в папке domains опен сервера. Для того чтобы добавить сайт нужно просто создать новую папку в папке domains. Я создал сайт drupal8.

Чтобы созданный сайт заработал, нужно перезапустить опен сервер. Для этого кликаем правой кнопкой на уже зеленный флажок опен сервера и выбираем перезапустить:
Все теперь мы подготовили веб сервер для нашего будущего сайта. Вы можете зайти на свой сайт в браузере, только нужно набирать сначала http:// перед названием сайта, например http://drupal8
Еще нужно подготовить базу данных для установки друпала. Лучше всего это сделать с помощью малелького, но сильного помощника Adminer:
https://www.adminer.org/
Даже самая полная версия админера занимает всего полмегабайта. Просто качайте его и закиньте файл в папку с вашим сайтом. Также переименуйте файл в adminer.php, чтобы вам было удобно писать его название без номера его версии.

Запускаем adminer через сайт, просто заходим на файл http://drupal8/adminer.php
Чтобы авторизоваться в adminer нужны доступы к серверу MySQL, для open server по умолчанию это пользователь root без пароля. Сервер базы данных MySQL — localhost, он уже прописан по умолчанию в adminer, просто пишите root в имени пользователя и двигаемся дальше.
Создаем новую базу:
Пишем имя базы, я обычно пишу такое же как и имя сайта, чтобы потом не запутаться. И выбираем кодировку, нужно выбирать utf8_general_ci. Эта кодировка позволит делать сайты хоть на китайском, хоть на французком языках.

И остался последний шажок перед установкой друпала. Как я писал выше нам нужна версия PHP 5.5.9 или выше, поэтому давайте переключим версию PHP в опен сервере. Заходим в настройки опен сервера:
Заходим в раздел модули, здесь нам нужно выставить PHP 5.6 и Apache 2.4. Apache выставляем 2.4 потому что 5.6 версия PHP работает в Open Server только с ним.
Теперь перезагружаем опен сервер
База создана, у нас настроен сервер, все готово чтобы поставить друпал 8. Переходим непосредственно к установке друпала. Качаем 8ой друпал с официального сайта drupal.org:
https://www.drupal.org/project/drupal
Дальше выбираем какой архив скачать tar.gz или zip, без разницы какой вы выберите архив, друпал внутри этих архивов одинаковый. Разархивировать можно этой бесплатной программой 7zip:
http://www.7-zip.org/
Копируем содержимое архива в папку нашего сайта на опен сервере, так чтобы файл index.php лежал прямо в папке:
Теперь мы можем зайти в браузер и начать установку нашего сайта http://drupal8/
Друпал предложит нам выбрать язык, выбираем русский (или другой необходимый):
Выбираем пакет установки друпала: стандарт — наиболее подходящий, в нем включены большинство необходимых нам модулей; минимальный — нужен если мы точно знаем что нам не понадобяться все дополнительные модули.
Когда друпал будет проверять требования к серверу, то у него возникнет ряд претензий к опен серверу, но на самой установке это не скажется, просто нажимаем «Продолжить в любом случае»
На следующем этапе нужно вбить данные базы MySQL, которую мы создавали ранее через админер. Я создавал такую же как и название сайта drupal8, пользователь у нас root без пароля.
Друпал дальше сам скачает необходимые переводы и поставит модули, вам нужно только подожать (минут 5-15, если интернет медленный то это может затянуться на 20-30). После установки переводов, нужно добавить настройки сайта: имя сайта, емайл администратора, логин и пароль администратора, часовой пояс сайта (можно оставить без изменения) и страна сайта.
Теперь будут применены переводы, обновится конфигурация сайта и сайт будет уставновлен. Пока установка друпала выглядит долгой, но думаю я подготовлю статьи по более быстрой установке. Ну а пока все, сайт готов для дальнейшей работы над ним:
Установка Друпал 8 на XAMPP (лучше использовать Open Server)
Для начала скачаем и установим xampp. Заходим на официальный сайт и скачиваем оттуда последнюю версию с PHP 5.5.x
https://www.apachefriends.org/download.html
Xampp устанавливается как обычная программа.
Ставим все из списка:
Используем предлагаемую папку:
C:xampp
Дальше немного ждем:
После установки xampp предложит Control Panel, давайте откроем ее и добавим новый сайт. Нам нужно запустить Apache, Mysql для того, чтобы добавить сайт. Когда Apache, Mysql включится, то кликните Admin напротив Apache, чтобы добавить сайт.
Теперь нам нужно добавить новый сайт, чтобы установить друпал. Можно сделать это изменив конфигурацию вручную (файлы hosts, httpd-vhosts.conf), об этом в отдельной статье:
Как добавить сайт в XAMPP
Но можно установить вебмин для того, чтобы у нас был интерфейс, для работы с сайтами. Давайте зайдем и скачаем webmin:
http://www.webmin.com/windows.html
Перед тем как установить webmin, нам понадобится perl, язык, на котором работает webmin.
http://www.activestate.com/activeperl/downloads
Вам нужно скачать 64-битную версию или 32-битную (если Вы не уверены, что у Вас 64-битная операционная система.
Установка Друпал 8 на Denwer (лучше исползовать Open Server)
Установка денвера
Самое простое средство чтобы развернуть сайт локально это Денвер. Официальный сайт денвере denwer.ru. Нам нужен денвер с версией PHP 5.3 (это язык на котором написан Drupal).
После того как скачаете денвер (Вам пришлют ссылку на емайл для скачивания), начинайте устанавливать его как обычную программу (также прикрепил к уроку на всякий случай денвер для скачивания). Откроется internet explorer, просто закройте его и продолжайте установку. Также обратите внимание, что денвер может конфликтовать со skype из-за совпадения портов, чтобы такого не было зайдите в скайп Инструменты — Настройки — Дополнительно — Соединение и там снимите галочку с Использовать порты 80 и 443 в качестве альтернативных.
Теперь продолжаем. Нажимаем Enter в окне установке денвера. Дальше денвер спросит куда его устанавливать, лучше всего установить куда он сам и предлагает в C:WebServers:
Дальше подтверждаем установку и пишем букву диска где будет лежать денвер, если больше денверов у Вас нет на компьютере, то смело выбирайте Z:
Дальше будет установка файлов и потом денвер спросит запускать его при запуске виндоуса, выбирите лучше 1, чтобы денвер сразу загружался. Также рекомендую согласиться с добавлением ярлыков на рабочий стол, все-таки это удобно. И это все, денвер установлен. Опять вылезет internet explorer с сообщением о том, что денвер конфликтует со скайп. Закрывайте ie и продолжим.
Теперь у Вас на диске C будет лежать папка WebServers (если конечно Вы не задали другой путь к денверу):
В папке WebServers будут несколько папок:
Denwer — здесь лежат скрипты запуска и отключения денвера
Home — здесь будут лежать файлы наших сайтов
Tmp — здесь лежат письма который будут отправляться с наших сайтов
Usr — это папка базы данных и веб сервера, собственно то на чем работает друпал.
Сейчас давайте зайдем в папку Denwer и включим денвер, запустив Run.exe. Денвер запустится и у нас появится диск Z:, в принципе это ссылка на папку C:/WebServers, так что к своим сайтам Вы сможете зайти через Z:/home или C:/WebServers/home это будет одна и та же папка.
Теперь давайте зайдем на диск Z: в папку home и создадим наш новый сайт. Для этого в папке home нужно создать папку и в этой папке создать еще одну папку www. Так чтобы получилось Z:/home/site/www. После этого заходим в Z:/denwer и запускаем Restart.exe, чтобы наш сайт заработал. Теперь сайт будет доступен по адресу http://site. Я назову папку sitemade, поэтому у меня будет сайт sitemade.
drupalbook.ru
Долгая установка с ошибкой 502
Drupal 8 устанавливается очень долго на виртуальном хостинге. Часто из-за настроек ограничения потребления ресурсов (процессорного времени и памяти) процесс установки может обрываться — показом ошибки 502 или другой. В следствие этого пользователь получает нерабочий сайт или не все переводы портируются.
Требование PHP 5.5.9
Для корректной работы Drupal 8 нужна версия PHP не ниже 5.5.9. Этот вопрос решается, например, на хостинге Джино выбором версии PHP 5.6 в панели управления. Но при выборе PHP 5.6 могут происходить ошибки на сайтах Drupal 7, поэтому придется иметь два разных аккаунта.
Требование библиотеки кэширования Zend opcache
Во время установки может возникать ошибка «не найден Zend opcache». opcache — это библиотека, которая должна быть установлена на сервере обязательно для работы Drupal 8. На некоторых хостингах её можно включить (обращайтесь в службу поддержки). На других хостингах, где нет доступа к php.ini, Друпал 8 не сможет работать.
Белый сайт после установки
Эта проблема связана с тем, что Drupal 8 не имеет прав записи файлов, поэтому в html-коды страниц не включаются файлы стилей (Друпал 8 подключает их всегда динамически, создавая обработанные css-файлы). На хостинге Джино, например, проблема белого сайта решается исправлением настроек в файле /sites/default/files/.htaccess. Закомментируйте строку:
#Options -Indexes -ExecCGI -Includes -MultiViews
После этого дизайн сайта вновь появится, так как Друпал сможет записывать файлы стилей.
Чтобы удобно работать с Друпал 8, рекомендуется пользоваться drupalhosting.ru (при заказе пишите «для Друпал 8») или приобрести VPS.
www.tlito.ru
Плюсы и минусы вариантов
Стандартный способ
- Плюсы
- Официальный и стандартный вариант установки. Для кого-то это может стать очень важным решающим фактором.
- Не требует никаких дополнительных знаний и подготовки. Достаточно скачать архив, распаковать его в webroot проекта и запустить установку. Если вы пришли в Drupal из других CMS, это будет вам знакомо.
- Данный вариант установки ядра без проблем и доп. настроек переносится на всевозможные хостинги и VPS. Опять же, стандартное поведение для большинства CMS, если не всех.
Drupal, как минимум с 7-ой версии, позиционируется как CMF решение. То есть, это некая золотая середина между CMS и чистыми фреймворками. Если у Drupal 7 был перевес в сторону CMS, то Drupal 8 ещё сильнее перевешивает в сторону фреймворков. И сторонние зависимости от Symfony ещё сильнее его туда склоняют. Исходя из этого, я выделяю следующие минусы.
- Минусы
- Самый фатальный недостаток, который и является следствием всех проблем и остальных минусов — то что composer внедрили после релиза Drupal 8, в Drupal 8.1. Получилось так, что структура проекта уже сформировалась и люди уже держали продакшен сайты на 8-ке. Но данная структура совершенно неудачное решение для такого уровня CMS. Именно поэтому все проблемы с composer на данном варианте и возникают. Конфликты версий, проблемы с зависимостями, потерянные файлы — всё это отсюда, потому что всё в куче.
- Структура для такого уровня CMS просто напросто неудобная. Drupal 8 нам принес не только новую цифру в версии? и какие-то API и фишки, он также полностью меняет процесс разработки сайтов на Drupal в сравнении с Drupal 7, а структура, при этом, осталась прежней с косметическими изменениями.
- Drupal 8 полностью крутится вокруг конфигураций. Конфигурации можно смело отнести в разряд кодовой базы. Это самые обычные YAML файлики, но при этом, они содержат кучу важной и приватной информации. Такие файлы ни в коем случае не должны быть доступны из сети по запросу. К сожалению, структура такого подхода делает данный момент максимально уязвимым. Конфиги, как вы ни крутите, будут лежать в пределах вебрута проекта, вся надежда на то, что .htaccess отработает корректно и вы его не потеряете, а если у вас NGINX, то вообще, если сами не проконтролируете, они из коробки будут качаться у вас. Такие файлы хранить в вебруте и ниже по иерархии — не нужно. Но выбора тут у нас нет.
- ? Вы и сами можете проверить. Попробуйте запросить любой конфиг файл из проекта прямым запросом: http://example.com/sites/default/files/config_XYZ/sync/automated_cron.settings.yml (XYZ замените на ваш хэш, и если у вас конфиги экспортируются не в sites/default/files/config_XYZ, на новый путь). Скачался? Это очень тревожный звоночек. А что если эти XYZ узнаеет третье лицо? А если вы поменяете путь на какой-нибудь sites/default/config/sync, где даже XYZ знать не надо? А это очень популярный способ экспорта конфигов. Конфиги имеют стандартное именование у всех сайтов, и если у вас магазин, например, подогнать название конфига от какой-нибудь платежной системы или друго сервиса, и скомпрометировать ваши API ключи, не составит труда. Очень много если, и ни одной причины держать их открытыми для загрузки, НИ-О-ДНО-Й.
- Аналогично и с зависимостями Composer. vendor директория находится в вебруте проекта. По умолчанию она хорошо защищена и часть файлов при установке оттуда удаляется. Но сторонние зависимости надо контролировать руками и слепо верить им, или проверять в ручную. Но вы сами то в это верите, что вы будите проводить аудит безопасности всех зависимостей которые у вас скачаются по ходу развития проекта, как вами, так и контриб модулями и т.д. там по цепочке зависимостей? Там могут быть совершенно неочевидные пути к взлому, все это, как минимум, компрометирует инфомрмацию о внутреннем устройстве проекта. И опять же, нет ни одной причины их держать открытыми в веб. Как по мне, это плохая практика. Посмотрите на структуру проекта Symfony или Laravel. А это, на минуточку, одни из топовых фреймворков, у которых управление зависимостями также построено на composer и они активно используют YAML конфигурации. Видите где у них index.php, а где конфиги и vendor? Захотите повторить — получится composer drupal project.
- Возможно вы используете или собираетесь использовать данный способ как способ избежать взаимодействия с Composer, или свести её к минимуму. Возможно, вы сведете, на старте. Но когда у вас начнутся проблемы и конфликты версий, вы в итоге потратите больше времени на решение проблем и возню с ним. Вы не избежите композера никак.
Composer Drupal Project
- Плюсы
- От композера вы не убежите, он вас нагонет. А дальнейшая интеграция Drupal и Composer будет только усиливаться. Если же это неизбежно, проще сразу вести проект полностью на нем. Это решит проблемы в будущем, и текущие проблемы. У вас не будет каши, когда часть модулей стоит с drupal.org руками или ещё как, а другая через композер. Проще все вести в композере, зачем вам такой бардак на проекте? И это я не беру во внимания побочные плюсы самого композера, типа лока версий, автопатчинг, и возможность подключать свои приватные репы для обновления кастом модулей.
- Структура файлов тут немного отличается от оригинальной. Тут появляется всего один новый уровень в иерархии, и это решает все минусы стандартного подхода. vendor и конфигурации тут находятся за пределами webroot проекта, а следовательно, эти файлы не доступны по прямому запросу, никак, вообще. Если вы сами не напишите контроллер который будет их отдавать. И не важно уже, apache у вас или nginx, потеряли вы .htaccess файли или нет, до них просто физически не добраться. Помните пример на проверку выше? Тут даже примера быть не может, так как данные файлы находятся на уровень выше вебрута. Если бы такое можно было писать, то было бы так: http://example/../config/sync/automated_cron.settings.yml. Но такой возможности нет, а следовательно, вы как в танке.
- Такая структура также очень приятная если вы захотите сделать приватную файловую систему. Опять же, её можно положить в корень проекта, и она автоматически защищена от прямого запроса. Приватную файловую систему рекомендуется выносить за пределы вебрута, тут это будет за пределами и внутри проекта. На стандартном проекте, с 99.999% вероятностью она будет у вас в пределах вебрута. Так как вынести её за пределы? дело очень веселое и повлечет за собой множество проблем. И опять, придется заботиться как бы файлы оттуда не начали качаться по прямому запросу. А тут создали и забыли. Оно просто работает.
- Репозиторий проекта максимально чистый. Из-за данной структуры и того, что она решает проблемы с композером, как минимум. Вам не придется держать в репозитории ядро друпала, что придется делать с очень высокой вероятностью на стандартном подходе, так как композер качает ядро на стандартном подходе как повезет. В итоге в вашем репозитории окажутся только кастомные темы, модули, а также файлы что вы положите, окружения, докер файлы и вот это вот всё. Никаких контрибов, ядра и зависимостей там не будет.
- Минусы
- Самый страшный минус. ? Из-за того что вебрут находится на уровень ниже, то на хостингах и VPS, с 99% вероятностью потребуется легкая настройка. Как правило, просто в настройках сайтадомена меняется настройка индекс файла с index.php на web/index.php. Делов, не более чем на 5 минут на 1 раз.
- Это не минус, больше рекомендация. С данным подходом очень желательно начать пользоваться git для деплоя изменений. Иначе из него будет не выжать максимум. Деплоить изменения гитом и композером на такой структуре просто кайф.
Вывод
А теперь небольшой мой вывод: Я считаю что способ установки ядра через композер, в реалиях, друпал 8, должен быть одним единственным, как это сделано у Symfony. Вы у них нигде не скачаете на официальном сайте архив с фреймворком. Но по понятным причинам, такое уже сделать просто невозможно, я надеюсь что на такой шаг решатся с релизом Drupal 9. Тут можно дискутировать очень долго, нравится вам композер или нет, но факт в том, что если вы решили использовать Drupal 8, то композер де-факто становится обязательным, поэтому, лучше начать его использовать с самого старта и для всех задач которые он покрывает, а не выборочно там где у вас безвыходная ситуация.
Например, модуль Swift Mailer используется для отправки html писем, очень полезный и нужный. Попробуйте его установить и завести без композера. По факту то поставить можно, но это займет, скорее всего, часы в первый раз, а затем, любое обновлениеизменение композера или модуля — опять семь кругов ада и это даже близко не пара минут даже с опытом. Или Drupal Commerce. В общем, композер вас догонит, как ни крути, да ещё пнет так, что сами не рады будите. Именно поэтому, многие новички могут посмотреть на это, и сказать — «Drupal говно!». К сожалению, они так могут и не понять почему у них столько проблем. И причина тут не в композере, и не в новичках.
Composer — это круто и удобно, но то как он работает и приготовлен в ядре из коробки, вызывает ненависть к нему. Мысль о том, что что-то вы делаете не так, все равно начнет со временем расти у вас в голове, отчасти это проблема ядра, и решение поискать другие варианты установки или ведения проекта на Drupal может быть совершенно неочевидным решением, особенно для новичков. Поэтому этот материал и есть, а также есть composer drupal project.
Я не навязываю вам composer drupal project, но очень настоятельно рекомендую, хотябы просто попробовать. Это совершенно другой экспириенс работы с Drupal, и для меня, он был в позитивную сторону, чего я не скажу про стандартный вариант.
Установка
Стандартный способ
- Заходим на страницу с ядром.
- Качаем актуальную версию в виде архива.
- Распаковываем в webroot вашего проекта.
- Устанавливаем.
Корень проекта, он же вебрут выглядит так.
niklan.net
Всё чаще стали предлагать работу на Drupal 8, а я ещё толком за него и не брался. Дай думаю для начала создам свой профиль и переведу блог на восьмёрку, благо совсем недавно вышла версия 8.4.
Начать решил по традиции с скрипта автоматической установки. Уже вбив в sh файлик заветное drush dl drupal
вспомнил, что для восьмёрки нужен свежий Drush, несовместимый с версией для Drupal 7. Иду на drush.org → Docs → Install и вижу:
Проблема 1: друпал нельзя скачать с помощью Drush
Сайт встречает заметной плашкой:
Drush 9 only supports one install method. It requires that your Drupal 8 site be built with Composer and Drush be listed as a dependency.
Т.е. друпал должен быть установлен с помощью Composer, а Drush добавлен локально в качестве зависимости. Глобальная установка не поддерживается, но есть отдельная утилита drush-launcher, которая по сути просто перенаправляет команды в vendor/bin/drush
.
Вспоминаю о Drupal Console:
Проблема 2: CLI утилиты теперь две
Существует альтернатива Drush под названием Drupal Console. Первоначально она задумывалась как код-генератор, но сейчас по факту клон Drush.
Что же выбрать? Мои фоловеры в твиттере предпочитают Drupal Console. Я пожалуй теперь буду тоже. Хотя ничто не мешает установить и то и другое.
И Drupal Console тоже можно установить только локально…
Ладно, двигаюсь дальше. Гуглю «drupal install composer». Вторая же ссылка ведёт на официальную документацию, где и правда советуют ставить друпал с помощью композера. Но:
Проблема 3: установка через Composer возможна тремя различными способами
Для скачивания друпала предлагается на выбор три варианта:
1. composer create-project drupal-composer/drupal-project
2. composer create-project drupal/drupal
3. с помощью утилиты hussainweb/drupal-composer-init
Это была бы не проблема, если бы все три варианта давали один результат, но результат будет разниться.
Основные отличия кроются в организации каталогов. В drupal-composer/drupal-project
и hussainweb/drupal-composer-init
папка vendor
вынесена за пределы web root, что требует дополнительной настройки сервера.
Остановится решил на втором способе, чтобы результат был похож на оригинальный дистрибутив друпала. Выполняю в консоли composer create-project drupal/drupal
. Друпал скачался, один в один, как в дистрибутиве.
Читаю документацию дальше. Выясняю, что модули и темы теперь надо ставить тоже с помощью композера — composer require drupal/modulename
. Необходимость в Drush начинает пропадать.
Подобный подход позволяет забыть о ручном копировании дополнительных библиотек, требующихся для работы некоторых модулей. Композер сам скачает/обновит все зависимости, даже javascript (но это не точно). Раньше таким занимался drush make.
А sandbox модули ставятся так же просто? Нет:
Проблема 4: sandbox модули ставятся через костыль
Друпаловский композер-репозиторий packages.drupal.org
ничего не знает о sandbox-ах. Это значит, что для установки каждого sandbox модуля, нужно дополнительно добавлять в conposer.json
соответствующий git-репозиторий:
Сразу встаёт вопрос — как же обновлять всё это добро? Простое копирование затрёт изменённые файлы композера и возможно положит сайт. Документация однозначного ответа не даёт, описана только процедура обновления модулей: composer update drupal/modulename --with-dependencies
, про обновление ядра пусто. Лезу в гугл. Везде советуют composer update drupal/core --with-dependencies
. Ок, выполняю и:
Проблема 5: из коробки невозможно обновить Drupal с помощью Composer
Композер ругается:
Package «drupal/core» listed for update is not installed.
Пакет drupal/core
добавлен в composer.json
в секцию replace
, поэтому его нельзя обновить с помощью композера. Гуглю, попутно бомблю в твиттер. Нахожу статью Troubleshooting Composer и мою проблему. Советуют изменить composer.json
и перенести пакет drupal/core
из секции replace
в секцию require
. Но:
Проблема 6: composer не может удалять пакеты из секции replace
В композере нет команды для удаления пакета из секции replace
. Поможет только ручная правка composer.json
.
Вручную, так вручную. Удаляю "drupal/core": "^8.4"
. Выполняю composer require drupal/core
. Всё отлично, ядро теперь можно обновлять. Главное не забыть после обновления файлов запустить update.php
или выполнить vendor/bin/drush updb
.
Как обновить сразу всё — ядро и модули? На drupal.org не советуют, но по идее composer update
. Выполняю и:
Проблема 7: «composer update» обновляет зависимости ядра даже когда этого не надо
composer update
обновляет зависимости ядра, даже когда само ядро ещё не обновилось, т.е. оно с ними не оттестировано и теоретически могут возникнуть трудновоспроизводимые проблемы.
Коллеги в твиттере посоветовали композер модуль webflo/drupal-core-strict. Ставим — composer require webflo/drupal-core-strict
. Теперь composer update
не обновляет пакеты из core/composer.lock
, зато обновляет другие зависимости. Возможно не зря советовали не выполнять глобальный update. Как тогда за раз обновить овер сто модулей вопрос открытый.
В твиттере же всплывает:
Проблема 8: файлы вне папки core не обновляются
Файлы index.php
, robots.txt
и другие, которые не находятся в папке core
, не обновляются при вызове composer update drupal/core
или даже composer update
.
Проблема решается установкой очередного композер-модуля drupal-composer/drupal-scaffold: composer require drupal-composer/drupal-scaffold
.
По умолчанию модуль будет выкачивать все файлы из дистрибутива, которые находятся вне папки core
, в том числе robots.txt
и .htaccess
, что нежелательно. Чтобы ограничить список файлов, нужно изменить опцию extra.drupal-scaffold.excludes
. У композера есть команда для изменения настроек в секции extra, но:
Проблема 9: composer не умеет сохранять массивы в качестве значения опции
В extra.drupal-scaffold.excludes
нужно сохранить массив файлов. Команда composer config
этого сделать не может.
Вручную добавляем в секцию extra
:
Теперь при обновлении версии ядра друпала, будут обновляться «scaffold» файлы, за исключением .htaccess
и robots.txt
.
Теперь всё. Друпал скачан и готов к установке с последующим обновлением (не факт).
Получившийся скрипт:
На самом деле есть ещё небольшая проблема. У меня почему-то всегда выкачиваются пакеты из секции require-dev
. Я перепробовал миллион комбинаций и запретить скачивание никак не получается. Помогает только удаление composer.lock
перед вызовом composer require
.
Как итого. На дворе 2017 год. После релиза восьмёрки прошло два года. Дрис при каждом случае рассказывает про небывалые высоты, которых они достигли в DX. А я трачу выходные, чтобы правильно скачать (не установить!) Drupal 8. Вообще давно назревает продолжение статьи про свинью в помаде (старожилы вспомнят), но после такого нужно хлопать дверью, к чему я пока не готов 🙂 Посему продолжаем!
xandeadx.ru
Зарождался друпал в далёком 1999 году, а активно развиваться начал уже с 2001 года. В настоящее время последней версией системы является восьмая. На начало 2015 года восьмая ветка ещё проходит бета тестирование, но уже вполне пригодна для разработки сайтов. Седьмая версия весьма стабильна, но мы не будем ориентироваться на неё, а пойдём в ногу со временем. Итак, Drupal 8. Восьмая версия имеет значительные отличия от 6 и 7 версий. Как в административном интерфейсе, так и в написании модулей. Многие вещи уже есть в ядре. Некоторые из них вошли ещё в седьмую версию системы, какие-то решили включить лишь в восьмой версии. В настоящее время на восьмёрке работает уже порядка 4500 сайтов. На той же семёрке немногим более миллиона. Ещё 150 тысяч на шестёрке и 1.170.000 на более старых версиях движка. Полная статистика здесь https://www.drupal.org/project/usage/drupal Drupal уникален тем, что на его основе можно собрать фактически любой сайт. Например визитку, интернет магазин, каталог, доска объявлений, блог или даже социальную сеть. Скажу честно-неподготовленному пользователю, даже с серьёзным опытом программирования или опытом работы с другими CMS, разобраться в друпале будет сложно. У него достаточно высокий порог вхождения. Но, думаю вы не испугаетесь. На этом всё. Больше не будем углубляться в теорию, а посмотрим как же это всё работает. В ключевых моментах я дам точные определения различных сущностей и объясню для чего они предназначены и как их можно использовать в реальных задачах. Начнём с установки системы на сервер. Это может быть как локальный сервер, так и сервер в интернете. Скажу сразу-друпал достаточно требователен к ресурсам сервера, в частности к оперативной памяти. Для Drupal 8 нужно минимум 128Mb ОЗУ. Но, чем больше-тем лучше. Я буду вести разработку на VPS под управлением Debian 7. Друпал так же вполне работает под Windows. Вы уже должны знать, как создать домен и базу данных, в нашем случае это будет MySQL. Скачиваем последнюю версию друпала тут https://www.drupal.org/project/drupal Я скачиваю 8.0.0-beta7 Вы можете скачать в zip архив и распаковать на локальной машине. Если используете сервер-лучше качать в tar.gz и распаковывать(командой tar xvzf archive.tar.gz) уже на сервере, используя протокол SSH. Будьте внимательны — в папке с сайтами(обычно /var/www) должна быть папка сайта и в ней листинг файлов друпала Я создал БД с именем dr8_test, а так же пользователя dr8_user Открывайте сайт в браузере. Если вы всё сделали верно — то попадёте на адрес core/install.php Хочу обратить ваше внимание-что в восьмёрке стандартная тема свёрстана адаптивно и отлично адаптируется под любые разрешения экранов.
Систему можно сразу ставить на русском языке. В шестой и даже седьмой версиях локализация проводилась вручную или с помощью специальных модулей. Я выберу русский язык. Я сразу же столкнулся с ошибкой «The translations directory does not exist.». Установщик сразу подсказывает как её решить «Create the directory sites/default/files/translations .». Важно! При работе с сайтом вы можете загружать файлы в директорию sites/default/files. Модули нужно складывать в sites/default/all/modules и темы в sites/all/themes. Создаём папку translations в директории sites/default/files. Папки files в sites/default тоже нет — создадим и её. Папки files и translations должны иметь права 777. Если создали папку-то выбираем стандартный профиль и продолжаем установку:
Я получил ещё 2 ошибки «The Файл настроек does not exist.» и «The Services file does not exist.»
Для решения первой проблемы нужно создать копию файла sites/default/default.settings.php и назвать её settings.php. Дать права 777. Если вы работаете на сервере и у вас под рукой консоль — можете использовать данные команды, находясь в корне сайта: Вторая проблема решается аналогично, только с файлом services.yml. Я так же приведу листинг команд. Обе ошибки ушли и на следующем шаге необходимо ввести данные для доступа к БД. Дополнительные настройки оставляем по-умолчанию. Некоторые хостинги имеют хост базы данных отличный от localhost, так что не забывайте об этом.
Пошел процесс установки. Устанавливаются модули ядра.
Что стоит знать о модулях. Модуль — это некий функциональный блок, который выполняет ту или иную функцию. Например позволяет комментировать материалы, даёт возможность оценить материал по пятибальной шкале, транслитерирует адреса, подгружает блоки аяксом и огромное количество другого функционала. Модули могут зависеть друг от друга. Например 1 модуль может требовать для включения ещё 5 других модулей, некоторые из которых могут требовать другие модули. Придётся их все скачать и включить. Все модули и темы хранятся на официальном сайте http://www.drupal.org . Они все бесплатны. Модули не имеют обратной совместимости. То есть модуль, написанный для 8 версии движка, будет работать только с ядром восьмой версии. Для семёрки нужен модуль, написанный под 7 версию. С шестёркой аналогичная ситуация. Тоже самое касается и тем. Исключение составляют лишь библиотеки, но только благодаря тому, что это сторонние скрипты и пишутся не под друпал. Если вы скачали модуль и положили его в папку sites/all/modules — то модуль ещё не будет работать, его ещё надо включить, но об этом позже. Ненужный модуль нужно выключить, потом удалить и лишь после этого можно физически удалить папку с модулем. Ну вот все модули установились и друпал выдал сообщение «Все необходимые изменения в sites/default и sites/default/settings.php были выполнены, но вы должны удалить разрешение на запись в них в целях безопасности.» Отнестись к этому нужно со всей серьёзностью. Файлам sites/default/settings.php и sites/default/services.yml выставляем права 444, то есть только чтение. На завершающей странице задаём название сайта, а так же логин и пароль администратора. Далее идёт завершение установки и можно лицезреть установленный сайт.
На этом установка сайта завершена. К оглавлению Следующая статья
php-include.ru
Drupal 8 — это долгожданный релиз от сообщества Drupal, наконец-то Drupal перешел в мир объектно-ориентированного программирования, улучшенное управление настройками, строгое разделение интересов путем внедрения TWIG для шаблонов, и многое другое. В этой статье описывается самый простой способ установки Drupal 8 и его первичной настройки на ваш локальный компьютер.
О том как настроить локальную среду ХАМРР читайте здесь.
Скачайте дистрибутив актуальной версии Друпал 8 с официального сайта: https://www.drupal.org/download. Распакуйте его в корневую папку вашего сайта (например C:XAMPPhtdocseight).
Создайте базу данных, используя PHPMyAdmin. Запомните имя пользователя (администратора) и пароль для базы данных. Они понадобятся при установке.
Откройте браузер и в адресной строке введите URL-адрес вашего нового сайта. Например, localhost/eight.
Установка Друпал 8 начинается с выбора языка. Переводы для языков, отличных от английского, загружаются с сайта переводов Друпал. Если вы работаете на локальной машине без выхода в интернет, то выберите английский язык (English), чтобы избежать проблем с установкой. Либо загрузите файл переводов (например, drupal-8.1.0-beta2.ru.po) с официальной страницы https://localize.drupal.org/translate/languages/ru и поместите его в папку sitesdefaultfilestranslations (создайте, если ее не существует)
Выбрав язык нажмите кнопку Save and contunue.
На следующем шаге выберите установочный профиль – Стандарт. Нажмите кнопку Сохранить и продолжить.
Предупреждение о том, что нужно включить PHP OPcode caching.
Для XAMPP установленного на ОС windows 10 /8/7 это решается следующим образом: откройте файл php.ini, расположенный в папке XAMPPphp, и добавьте в него строку:
zend_extension = «С:XAMPPphpextphp_opcache.dll».
Если XAMPP установлен на другой диск или в другую директорию, то измените строку соответственно. Например «zend_extension = «D:LocalXAMPPphpextphp_opcache.dll»
Сохраните файл php.ini.
Перезагрузите Apache.
Вернитесь к установке Друпал и щелкните по ссылке «повторите попытку».
Ошибка Настройки xdebug.max_nesting_level установлен в 100.
Откройте файл php.ini, расположенный в папке XAMPPphp, и добавьте в него строку:
xdebug.max_nesting_level=256
Сохраните файл php.ini.
Перезагрузите Apache.
Вернитесь к установке Друпал и щелкните по ссылке «попробуйте еще раз».
drupal.lluvia.ru
Руководство по установке CMS Drupal 8 на виртуальный сервер под управлением операционной системы Ubuntu/Debian.
Что это такое?
CMS с открытым исходным кодом, проста в установке, позволяет создавать сайты любого размера и легко управлять ими с помощью бэкэнд-администрирования. По сравнению с предыдущими версиями Drupal 8 включает более 200 новых функции и улучшений:
- подходит как для малого бизнеса, так и для крупных компаний;
- создание динамического контента;
- позволяет сделать контент сайта более понятными для людей с ограниченными возможностями;
- улучшено кеширование и интеграция с CDN;
- управление отображением без использования программирования;
- широкий выбор языков.
Примечание: CMS — прикладное программное обеспечение с веб-интерфейсом, которое служит для управления (например добавление, редактирование, удаление) содержимым сайта.
Первоначальные требования
Все действия в данной инструкции выполняются с правами суперпользователя.
Перед тем, как начать работать с Drupal, на виртуальный сервер необходимо установить LAMP-стек. Об этом подробно написано в нашей инструкции.
После того, как у вас есть необходимые права и нужное ПО, вы можете начать установку.
Загрузка Drupal
Первое, что нам нужно сделать, это загрузить архив приложения на ваш виртуальный сервер. С помощью утилиты wget скачиваем стабильную версию ПО с официального сайта разработчика:
cd ~
wget http://ftp.drupal.org/files/projects/drupal-8.3.4.tar.gz
С помощью команды tar распакуйте файлы:
tar xzvf drupal*
В итоге содержимое каталога будет следующим:
Скопируйте файлы в каталог с помощью команд: cd drupal-8.3.4
rsync -avz . /var/www/html
Настройка Drupal для обеспечения безопасности
Сценарий установки требует внесения некоторых изменений в каталог Drupal, чтобы закончить процесс правильно. Сначала сделайте нужный подкаталог подкаталог:
cd /var/www/html/sites/default/
mkdir files
Далее мы должны скопировать файл настроек по умолчанию в файл, который Drupal использует для активной конфигурации:
cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php
Этот активный файл настроек временно требует дополнительных разрешений во время процедуры установки. Необходимо предоставить разрешения на запись владельцу группы:
chmod 664 /var/www/html/sites/default/settings.php
Нужно предоставить групповое владение файлами веб-пользователю, которым является www-data:
cd /var/www
chown www-data:www-data -R ./*
Настройка Базы данных
Создайте новую БД для MySQL для Drupal, для этого заходим в MySQL-оболочку:
mysql -u root -p
Войдите в СУБД, используя пароль суперпользователя MySQL. Затем нужно создать базу данных, нового пользователя в этой базе данных и предоставить ему привилегии.
Создаем базу данных:
CREATE DATABASE drupal;
Создаем нового пользователя:
CREATE USER duser@localhost;
Устанавливаем пароль для нового пользователя, указав вместо <пароль> ваш пароль:
SET PASSWORD FOR duser@localhost= PASSWORD("<пароль>");
Завершите настройку, предоставив все привилегии новому пользователю. Без привилегий CMS не сможет полноценно использовать базу данных:
GRANT ALL PRIVILEGES ON drupal.* TO duser IDENTIFIED BY '<пароль>';
Затем обновите MySQL:
FLUSH PRIVILEGES;
На этом этапе можно выйти из оболочки MySQL:
exit
Дополнительные модули PHP
Для работы данной CMS необходимо установка специальных модулей php. С помощью последующих действий установите их:
apt-get update
apt-get install php7.0-gd
Далее сделаем несколько небольших изменений в файле конфигурации PHP. Откройте файл конфигурации Apache PHP в текстовом редакторе, например vi:
vi /etc/php/7.0/apache2/php.ini
Откройте директивы expose_php и allow_url_fopen и установите оба значения в "Off".
Примечание: в текстовом редакторе vi поиск можно осуществить следующем образом — нажмите “/”, введите слово для поиска, далее Enter. Перебор соответствий можно осуществить с помощью клавиши “n”.
Настройка Apache
Чтобы перейти к настройке Drupal в браузере, необходимо отредактировать файл конфигурации apache:
vi /etc/apache2/sites-enabled/000-default.conf
Пример:
Примечание: если у вас несколько сайтов на сервере используйте документацию на Apache.
Настройка FireWall для возможности удаленного доступа (проброс порта):
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables-save
Примечание: после перезапуска сервера порт опять будет необходимо открыть.
Выполните перезапуск сервера Apache для проделанных изменений:
service apache2 restart
Настройка Drupal
В адресной сроке браузера перейдите по ссылке, указав ваш АйПи-адрес:
<ip-адрес>
Например:
185.125.46.12
Выберете язык.
В окне установке выберете профиль Стандарт и нажмите Сохранить и продолжить.
В следующем окне при возникновении ошибок установите недостающие модули.
Для продолжения перейдите по ссылке внизу страницы.
На следующем шаге введите созданного MySQL-пользователя, пароль и имя базы.
Примечание: когда вы нажмите Save and continue, есть вероятность, что вы будете перенаправлены обратно на ту же страницу конфигурации базы данных. Если это произойдет, просто обновите страницу. База данных будет настроена, и профиль будет установлен.
Как правило установка занимает некоторое время.
Далее введите личную информацию, такую как домен вашего сайта, электронную почту, и остальные сведения. При настройке Вам будут даны рекомендации по уровню сложности пароля и созданию имени администратора.
По завершению установки вы попадете в панель управления сайтом.
При переходе на сайт или ip-адрес для входа в CMS используйте созданные на последнем шаге логин и пароль.
На этом установка завершена. Теперь вы можете использовать все возможности Drupal для своего бизнеса.
1cloud.ru