Среди свободных CMS (Content Management System) Drupal является одной из самых распространённых и популярных. Особенно часто её используют профессиональные Web-разработчики, поскольку эта система обладает мощным функционалом и возможностями. Так или иначе, но для того, чтобы начать работу с Drupal, необходимо эту CMS предварительно установить. Неважно, где подразумевается установка: коммерческий хостинг или сервер разработки — порядок и смысл действий при этом совершенно не меняется.
Что для этого нужно?
Для установки Drupal и его полноценной работы необходимо удостовериться, что в системе установлены все необходимые для этого расширения для интерпретатора PHP. Таковыми являются:
- php-mbstring – обеспечивает многобайтовое кодирование для работы строковых функций PHP;
- php-curl – преобразование адресов в «чистые» ссылки;
- php-mysql – обеспечивает программный интерфейс PHP для работы c БД MySQL;
- php-gd – графическая библиотека PHP.
Все приведённые расширения доступны в стандартных репозиториях практически в любом из дистрибутивов Linux. Поэтому установить их не составляет никакой сложности, используя менеджер пакетов или систему управления пакетами (СУП) используемого дистрибутива. Например, для Ubuntu:
$ sudo apt install php7.2-gd php7.2-mbstring php7.2-curl php7.2-mysql
Также можно проверить, настроена ли связка Apache + PHP, которая обеспечивается модулем Apache libapache2-mod-php7.2:
$ sudo apt-cache search mod-php libapache2-mod-php – server-side, HTML-embedded scripting language (Apache 2 module) (default) libapache2-mod-php7.2 – server-side, HTML-embedded scripting language (Apache 2 module)
$ dpkg -s libapache2-mod-php7.2 Pckage: libapache2-mod-php7.2 Status: install ok installed
Как можно видеть, модуль libapache2-mod-php7.2 (в Ubuntu используется PHP 7) установлен. Приведённые выше команды, а также наименования пакетов характерны для Debian-систем, таких как Kubuntu 18.04. В RPM-ориентированных системах используются другие менеджеры пакетов и СУП, наименование пакетов будут также несколько отличаться.
В качестве СУБД (система управления базами данных) следует использовать MySQL (MariaDB), их эквиваленты, PostgreSQL или SQLite.
Загрузка и распаковка дистрибутива с CMS Drupal
Теперь необходимо загрузить сам дистрибутив CMS Drupal. В данной статье рассматривается установка Drupal 7, хотя уже давно вышла 8-я версия этой CMS. Ход установки и в той и в другой версии ничем не отличается. Разве что для Drupal 8 необходимо больше дополнительных расширений PHP, таких как например php-opcache.
Загрузить дистрибутив Drupal можно при помощи утилиты wget по официальному адресу проекта:
$ wget https://ftp.drupal.org/files/projects/drupal-7.64.tar.gz
Предполагается, что пользователь находится в своём домашнем каталоге, поэтому загруженный архив будет сохранён в соответствующем месте, т. е. в ~/.
Далее необходимо распаковать скачанный архив в каталог с виртуальными хостами Apache. Здесь также предполагается, что Apache сконфигурирован таким образом, что каталогом его виртуальных хостов является каталог /home и все его подкаталоги, что очень удобно. Ведь в таком случае любой пользователь может создавать и размещать свои веб-приложения, при этом лишь запрашивая лишь помощь в настройке виртуальных хостов у администратора. В дальнейшем установка Drupal будет рассматриваться для виртуального хоста site-drupal в каталоге /home/john/htdocs/drupal-site/. Естественно, можно проводить установку и в каталог /var/www/html/, который является каталогом виртуальных хостов, сконфигурированном по-умолчанию для Apache, однако ход установки от этого принципиально не меняется. Распаковка архива с Drupal:
$ tar -xvf drupal-7.64.tar.gz -C ~/htdocs $ ls ~/htdocs drupal-7.64
Поскольку было оговорено, что каталог с Drupal будет иметь имя drupal-site, то следует переименовать drupal-7.64:
$ mv ~/htdocs/drupal-7.64 ~/htdocs/drupal-site
На этом подготовка каталога виртуального хоста drupal-site для Drupal завершена. Следующий этап — подготовка базы данных (БД) для будущего сайта на Drupal.
Создание БД для Drupal
Для установки Drupal (как и для большинства современных веб-приложений) необходима БД. Её нужно создать пустой — Drupal сам в процессе установки настроит её и заполнит в соответствии с профилем и параметрами установки. Прежде всего необходимо авторизоваться на сервере MySQL, а также иметь соответствующие привилегии для создания и редактирования БД:
$ mysql -u john -p Enter password: mysql>
Создание БД с именем drupal_site:
mysql> create database drupal_site; Query OK, 1 row affected (0.00 sec)
БД подготовлена, можно завершить работу с консолью MySQL, выполнив команду exit.
Выбор профиля установки и начальная локализация
После настройки виртуального хоста Apache для установки и работы Drupal нужно в любом веб-браузере перейти по адресу: http://drupal-site. В результате Drupal сам запустит свой скрипт установки install.php. Сама же конфигурация виртуального хоста для drupal-site будет такой:
<VirtualHost *:80>
ServerName drupal-site
<IfModule mpm_itk_module>
AssignUserId john john
</IfModule>
ServerAdmin webmaster@localhost
DocumentRoot /home/john/htdocs/drupal-site/
<Directory /home/john/htdocs/drupal-site/>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
</Directory>
ErrorLog ${APACHE_LOG_DIR}/drupal-site_error.log
CustomLog ${APACHE_LOG_DIR}/drupal-site_access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Важно заметить, что конструкция:
<IfModule mpm_itk_module>
AssignUserId john john
</IfModule>
необходима только, если используется модуль Apache mpm-itk. Он позволяет запускать экземпляры процессов Apache от имени пользователей-владельцев виртуальных хостов. В данном случае хост drupal-site связывается с пользователем john и его группой.
Первое, что предлагает пользователю сценарий установки Drupal – это выбрать профиль установки: минимальный или стандартный. Второй отличается от первого набором модулей, улучшающих взаимодействие с CMS и доводящих её функциональность до полноценного сайта. Стандартный профиль предпочтительнее в большинстве случаев.
Рис.1. Выбор профиля установки Drupal 7
На этом же этапе уже можно загрузить и установить файлы нужных локализаций по адресу https://localize.drupal.org/download. Сами локализации устанавливаются в каталог_drupal/profiles/профиль/translations/
. Таким образом скачанный файл с локализацией (например drupal-7.64.ru.po) нужно скопировать следующим образом:
$ cp drupal-7.64.ru.po ~/htdocs/drupal-site/profiles/standard/translations
Теперь, после нажатия кнопки «Save and continue» загрузится следующая страница, на которой можно выбрать только что установленную локализацию:
Рис.2 Выбор языка установки
Следующим этапом установки является проверка конфигурации веб-сервера, а также интерпретатора PHP. Именно на этом этапе Drupal проверяет режимы доступа к каталогу и файлам виртуального хоста, а также наличие все необходимых модулей для Apache и PHP:
Рис.3 Ошибка доступа веб-сервера Apache к файлам виртуального хоста drupal-site
В данном случае ошибки связаны с тем, что Apache не может создать (посредством PHP) служебный каталог files и конфигурационный файл settings.php для Drupal. Каталог drupal-site и его содержимое принадлежат пользователю john и его группе. Тогда как всем остальным пользователям (в том числе пользователю Apache www-data) доступ запрещён.
Решением является использование модуля mpm-itk (или ему подобных), а также добавление в конфигурацию виртуального хоста директивы AssignUserId, либо добавление пользователя john в группу www-data Apache (или наоборот) и скрупулёзная настройка режимов доступа к каталогу виртуального хоста drupal-site. Первый вариант предпочтительнее.
После решения проблемы с режимами доступа (если конечно такая возникнет) следует обновить текущую страницу в веб-браузере и следовать дальнейшим этапам установки.
На следующем этапе необходимо указать Drupal, какую БД использовать для установки и, собственно, работы CMS. Среди прочих параметров можно указать и нестандартные, такие как хост подключения к БД, порт и префикс таблиц, которые находятся в раскрывающемся разделе «Дополнительные настройки»:
Рис. 4 Настройка подключение к базе данных
Далее Drupal настроит и установит БД. А также импортирует переводы из недавно установленного файла локализации:
Рис 5 Импорт переводов
Конфигурирование установки
Это самый простой этап установки. Здесь нужно задать некоторые персональные настройки для будущего сайта. Региональные настройки, а также создать учётную запись администратора, обслуживающего CMS:
Рис 6. Задание персональных настроек сайта
Ну и наконец, собственно, главная страница свежеустановленной Drupal 7:
Рис 7. Главная страница CMS Drupal
Утилита drush
Одной из особенностей Drupal является то, что для этой CMS существует специальная утилита, существенно упрощающая и ускоряющая обслуживание CMS. Она обладает интерфейсом командной строки и имеет практически безграничные возможности по управлению Drupal. Эта утилита называется drush – Drupal sh. Так, например, используя drush можно выполнить установку Drupal буквально одной командой:
$ drush site-install standard --account-name=john --account-pass=notqwerty —db-su=john --db-su-pw=rootdbpasswd --db-url=mysql://john:'rootdbpasswd'@'localhost'/drupal_site –site-name=SiteName
Для использования drush для определённого виртуального хоста на Drupal, необходимо предварительно перейти в каталог этого виртуального хоста.
Таким образом утилита drush очень полезна, поскольку позволяет полностью автоматизировать процесс установки и управления CMS Drupal. Что очень удобно как самим пользователям, так и администраторам хостинг-площадок.
Заключение
В заключение стоит отметить, что особое внимание при установке Drupal следует уделять даже не столько самому процессу установки, сколько настройке виртуального хоста для этого, а также подключению требуемых модулей для Apache и PHP. И уж точно не стоит забывать о важности правильной настройки режимов доступа к виртуальному хосту
Я ранее использовал WordPress и Joomla, но когда решил перейти на Drupal не знал как установить но нашел эту статью, автору огромное спасибо , все получилось.