Введение
Drupal — одна из наиболее предпочтительных систем управления контентом (CMS) для ведения блогов и управления корпоративным контентом. Разработчики и компании выбирают её за надежность и удобство использования. Она легко настраивается, и её можно расширять для реализации самых разных сценариев использования.
В этом руководстве мы покажем, как установить Drupal на Ubuntu 20.04 с Apache.
Предварительные требования
Поскольку мы собираемся установить Drupal на Ubuntu, нам понадобится установленная последняя версия Ubuntu. Вы можете воспользоваться нашим руководством по установке Ubuntu, если она у вас еще не установлена. Нам также понадобятся PHP, MySQL, и Apache установленные и готовые к работе. Если они у вас не установлены, вы можете ознакомиться с нашим руководством Настройка LAMP-стека – Linux Apache MySQL PHP.
Прежде чем мы начнем загрузку и настройку Drupal на нашей машине, нам нужно внесить некоторые изменения в систему. После установки PHP, MySQL и Apache давайте приступим к настройке нашей системы для установки Drupal.
Подготовка пользователя и базы данных MySQL
Drupal использует базу данных MySQL для хранения данных и конфигурации. Мы настроим выделенного пользователя и базу данных, чтобы изолировать нашу среду Drupal. Это также поможет нам защитить наше приложение. Мы создадим нового пользователя и базу данных. Сначала войдите на сервер MySQL, выполнив в терминале следующую команду:
|
1 |
mysql -u root -p |
Введите имя пользователя и пароль MySQL. После прохождения аутентификации выполните команду ниже, чтобы создать новую базу данных. Назовем ее drupal:
|
1 |
CREATE DATABASE drupal; |
Далее вам нужно будет создать нового пользователя для подключения к этой базе данных. Мы назовем его drupaluser. Обязательно введите надежный пароль. Выполните команду ниже, чтобы создать нового пользователя:
|
1 |
CREATE USER drupaluser@localhost IDENTIFIED BY 'password'; |
Нашему пользователю требуются привилегии для выполнения операций с этой базой данных. Однако предоставление всех привилегий подвергнет наше приложение угрозам безопасности. Поэтому мы предоставим только необходимые привилегии, выполнив следующую команду:
|
1 |
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES ON drupal.* TO drupaluser@localhost; |
После предоставления привилегий мы готовы двигаться дальше. Выполните команду ниже, чтобы сбросить кэш привилегий, чтобы они вступили в силу немедленно:
|
1 |
FLUSH PRIVILEGES; |
После этого выйдите из MySQL, выполнив следующую команду:
|
1 |
exit |
Установка и настройка модулей PHP
Для работы Drupal требуются модули PHP. Мы загрузим их из официального репозитория Ubuntu. Обновите локальный кэш пакетов, выполнив команду ниже:
|
1 2 |
sudo apt-get update sudo apt-get install php5-gd php5-curl libssh2-php |
Далее мы внесем некоторые изменения в модули PHP в соответствии с рекомендациями Drupal. Откройте конфигурационный файл PHP с помощью следующей команды:
|
1 |
sudo nano /etc/php5/apache2/php.ini |
Отключите обе expose_php и allow_url_fopen переменные:
|
1 2 3 4 5 |
. . . expose_php = Off . . . allow_url_fopen = Off . . . |
Сохраните и закройте файл. Теперь вы готовы двигаться дальше.
Изменение файлов Htaccess в Apache
Drupal необходимо изменять URL-адреса, чтобы они были более понятны пользователям. Для этого ему нужен доступ к перезаписи URL. К счастью, модуль mod_rewrite для перезаписи присутствует в Apache по умолчанию. Нам просто нужно его включить. Выполните команду ниже, чтобы включить этот модуль:
|
1 |
sudo a2enmod rewrite |
Далее нам нужно обновить настройки виртуального хоста. Это необходимо сделать для того, чтобы Drupal мог получить доступ к .htaccess файлу. Откройте файл virtualhost выполнив команду ниже:
|
1 |
sudo nano /etc/apache2/sites-enabled/000-default.conf |
Внутри virtualhost настройки, добавьте папку, которая указывает на наш корневой каталог веб-сайта. Здесь, AllowOverride на All. Если у вас есть доменное имя, вы можете добавить ServerName директиву и изменить ServerAdmin директиву, чтобы указать действующий адрес электронной почты:
|
1 2 3 4 5 6 7 8 9 10 11 |
<VirtualHost *:80> . . . ServerName example.com ServerAdmin webmaster@example.com DocumentRoot /var/www/html <Directory /var/www/html> AllowOverride All </Directory> . . . </VirtualHost> |
Сохраните и закройте файл. Теперь все готово. Нам просто нужно перезапустить Apache и PHP, чтобы изменения вступили в силу:
|
1 |
sudo service apache2 restart |
Установка Drupal
Здесь мы установим Drupal в корневой каталог веб-сайта. Мы распакуем файлы Drupal и сделаем копию. После этого мы скопируем эти скопированные файлы в нужный каталог. Это даст нам резервную копию файлов на случай, если что-то пойдет не так.
Чтобы скачать Drupal, откройте https://www.drupal.org/project/drupal. В разделе Recommended releases найдите нужный выпуск. Затем скопируйте адрес файла tar.gz. На своем сервере вы можете скачать этот файл с помощью утилиты wget . Выполните команду ниже в терминале, чтобы загрузить файл по скопированной ссылке:
|
1 2 |
cd ~ wget <ваша ссылка> |
После загрузки файла распакуйте каталог приложения, введя:
|
1 |
tar xzvf drupal* |
Теперь перейдите в только что созданный каталог с помощью команды ниже:
|
1 |
cd drupal* |
Скопируйте все файлы из этого каталога в корневой каталог веб-сайта, выполнив команду ниже:
|
1 |
sudo rsync -avz . /var/www/html |
После копирования файлов перейдите в корневой каталог веб-сайта, выполнив команду ниже:
|
1 |
cd /var/www/html |
Упрощение установки и обеспечение безопасности файлов Drupal
Если мы устанавливаем Drupal с помощью веб-скрипта установки, нам потребуются изменения в каталоге Drupal. Это заставит нас переключаться между браузером и командной строкой. Хотя мы можем установить его и таким образом, лучший вариант — внесить изменения в наши файлы и избавиться от этих хлопот.
Создайте новый каталог в поддереве sites/default под названием files:
|
1 |
mkdir /var/www/html/sites/default/files |
Скопируйте файл настроек по умолчанию в файл, который Drupal использует для активной конфигурации:
|
1 |
cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php |
Чтобы завершить установку, нам нужно предоставить активному файлу настроек дополнительные привилегии. Позже мы отменим это изменение. Выполните команду ниже, чтобы предоставить разрешение на запись для группе владельцу:
|
1 |
chmod 664 /var/www/html/sites/default/settings.php |
Передайте права владения группой для наших файлов веб-пользователю, которым в Ubuntu является www-data. Вся наша установка Drupal требует этих прав собственности:
|
1 |
sudo chown -R :www-data /var/www/html/* |
Теперь мы можем двигаться дальше.
Завершение веб-установки
С этого момента мы будем использовать браузер. Шаги будут простыми и быстрыми. Введите в браузере домен/IP-адрес сервера:
|
1 |
http://server_domain_or_ip/ |
Вы увидите приветственную страницу Drupal:

В большинстве случаев Standard является вариантом по умолчанию. Выберите Manual, если этого требует ваш конкретный случай использования. После выбора Standard нажмите Save and Continue. Вы увидите еще несколько запросов. Продолжайте нажимать Next и принимая параметры по умолчанию, пока не дойдете до страницы настройки базы данных. На этой странице вам будет предложено ввести информацию о базе данных. Введите имя пользователя и пароль и базу данных на этой странице, которые мы использовали выше:

Нажмите Save and Continue. Если вы будете перенаправлены на ту же страницу настройки базы данных, просто обновите страницу. Настройки базы данных будут настроены, и профиль будет установлен.
Вам будет предложено ввести дополнительную информацию о веб-сайте. Вверху также появится уведомление о том, что можно изменить права доступа к файлу настроек. Мы сделаем это лишь на короткое время, а затем вернем изменения обратно. Мы не хотим ставить под угрозу безопасность нашего сайта. Введите необходимую информацию для веб-сайта:

Нам нужно нажать Save and Continue еще раз, чтобы завершить установку. Откройте свой сайт, введя свой IP-адрес/домен. Вы увидите приветственную страницу:

На этом установка Drupal завершена. Теперь мы вернем права доступа для наших настроек, чтобы избежать несанкционированного использования. Ограничьте это, выполнив в терминале следующую команду:
|
1 |
chmod 644 /var/www/html/sites/default/settings.php |
Устранение неполадок
Нам нужно убедиться, что установка Drupal завершена. Если последний шаг не выполнен, выполните команду ниже:
|
1 |
sudo tail /var/log/apache2/error.log |
Это откроет файл log. Затем проверьте, сможете ли вы найти в файле следующую запись:
|
1 2 |
PHP Fatal error: Call to undefined function field_attach_load() in /var/www/html/includes/entity.inc on line 316, referer: http://12.34.56.78/install.php?profile=standard&locale=en sh: 1: /usr/sbin/sendmail: not found |
Если указанные выше строки присутствуют, это означает, что наша установка не увенчалась успехом. Чтобы устранить эту ошибку, Drupal предлагает решение в своей документации здесь: https://www.drupal.org/node/481758
Распространенной причиной вышеупомянутой ошибки является max_execution_time. Чтобы увеличить его, откройте файл php.ini с помощью следующей команды:
|
1 |
sudo nano /etc/php5/apache2/php.ini |
Затем найдите max_execution_time и измените его следующим образом:
|
1 |
max_execution_time = 300 |
Поскольку мы используем собственную базу данных, нам придется удалить базу данных Drupal по умолчанию и существующий файл настроек PHP /var/www/html/default/settings.php. После этого замените их копиями по умолчанию и начните установку заново. Не забудьте создать резервные копии в качестве меры предосторожности.
Чтобы удалить существующую базу данных Drupal, войдите в базу данных MySQL и выполните следующую команду:
|
1 |
DROP DATABASE 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, чтобы снова установить правильные права доступа. Теперь перейдите по своему IP-адресу и попробуйте установить заново.
Заключение
В этом руководстве мы узнали, как настроить Drupal на вашем компьютере под управлением Ubuntu. Это даст вам прочную основу для начала работы с Drupal CMS. Наличие настроенного Drupal поможет вам запустить свой веб-сайт, который можно легко настраивать без необходимости писать весь код с нуля.
Чтобы узнать больше о другой полезной CMS, WordPress, вы можете ознакомиться со следующими руководствами:
- Как развернуть WordPress с помощью контейнеров Docker на Ubuntu 20.04
- Как установить WordPress с LAMP на Ubuntu 20.04
- Почему вам стоит перейти на облачный хостинг WordPress для вашего сайта?
- Как перенести сайт с WordPress на CloudSigma PaaS
Приятной работы!
Комментарии
Комментариев пока нет. Будьте первым.