Установка CMS Drupal

Среди свободных 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> 
 
vimsyntax=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. Эта утилита называется drushDrupal 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. И уж точно не стоит забывать о важности правильной настройки режимов доступа к виртуальному хосту

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-03-21T10:25:13
Drupal