Drupal – это система управления контентом (CMS) с открытым исходным кодом, используемая для создания и управления веб-сайтами. Известная своей гибкостью и надежностью, Drupal позволяет пользователям создавать и организовывать контент, настраивать представление, автоматизировать административные задачи, управлять ролями и разрешениями пользователей. Особое предпочтение ему отдается за модульную архитектуру, которая позволяет разработчикам расширять и изменять функциональность с помощью тысяч дополнительных модулей и тем. Drupal обладает высокой масштабируемостью, что делает его подходящим как для небольших персональных блогов, так и для крупных корпоративных и правительственных сайтов. Сильная поддержка сообщества и исчерпывающая документация еще больше повышают его удобство и потенциал развития.
В этом руководстве мы проведем вас через установку Drupal на сервер Alma Linux 9 с использованием стека LAMP (Linux, Apache/Httpd, MariaDB и PHP). После этого мы покажем, как защитить вашу установку Drupal с помощью Firewalld и SSL-сертификатов с помощью Certbot и Let’s Encrypt.
Предварительные условия
Перед началом работы убедитесь, что у вас есть следующие требования:
- Сервер Alma Linux 9.
- Некорневой пользователь с привилегиями администратора.
- Доменное имя, указывающее на IP-адрес сервера.
- SELinux со статусом permissive.
Установка зависимостей
На данный момент последняя версия Drupal требует PHP 8.3, поэтому вам необходимо установить его через сторонний репозиторий. Кроме того, вы установите другие зависимости, включая веб-сервер Httpd и сервер MariaDB.
Перед установкой зависимостей добавьте репозиторий EPEL и Remi на ваш сервер Alma Linux. Введите y, когда появится запрос на добавление репозитория.
sudo dnf install epel-release dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
В дистрибутивах на базе RHEL некоторые пакеты поставляются в виде модулей репозитория. Включите модуль репозитория для PHP 8.3 через репозиторий Remi с помощью следующей команды.
sudo dnf module reset php sudo dnf module enable php:remi-8.3
Теперь установите пакеты LAMP Stack (Apache/Httpd, MariaDB и PHP) с помощью команды dnf, приведенной ниже. Когда появится запрос, введите y, чтобы подтвердить установку.
sudo dnf install httpd mariadb-server php php-cli php-devel php-mbstring php-gd php-xml php-curl php-mysqlnd php-pdo php-json php-opcache php-pear php-pecl-apcu php-pecl-crypto
После завершения установки запустите и включите службу httpd с помощью следующей команды.
sudo systemctl start httpd sudo systemctl enable httpd
Затем запустите и включите службу mariadb с помощью следующей команды.
sudo systemctl start mariadb sudo systemctl enable mariadb
Наконец, проверьте версию PHP с помощью следующей команды. Вы увидите, что в вашей системе установлен PHP 8.3.
php -v php -m
Настройка Firewalld
По умолчанию в Alma Linux установлен и работает firewalld. Вы должны открыть доступ к протоколам HTTP и HTTPS через firewalld и разрешить трафик для вашей установки Drupal.
Добавьте службу HTTP и HTTPS в firewalld с помощью команды ниже. Затем перезагрузите firewalld, чтобы применить изменения.
sudo firewall-cmd --add-service={http,https} --permanent sudo firewall-cmd --reload
Теперь выполните приведенную ниже команду, чтобы проверить состояние firewalld и список включенных правил. Вы увидите, что службы HTTP и HTTPS добавлены в firewalld.
sudo firewall-cmd --list-all
Настройка PHP
В этом разделе вы настроите PHP, отредактировав конфигурацию по умолчанию /etc/php.ini и установив дополнительное расширение uploadprogress через PECL (PHP Extension Community Library). Расширение uploadprogress необходимо Drupal, но доступно только в виде пакета PECL.
Откройте файл конфигурации PHP /etc/php.ini с помощью редактора nano командой ниже.
sudo nano /etc/php.ini
Измените конфигурацию по умолчанию на следующую. Убедитесь, что параметры memory_limit и date.timezone соответствуют вашему текущему окружению.
memory_limit = 512M upload_max_filesize = 60M max_execution_time = 300 date.timezone = Europe/Stockholm
После завершения работы сохраните файл и выйдите из него.
Теперь выполните приведенную ниже команду, чтобы установить модуль uploadprogress в вашу систему. Модуль uploadprogress доступен в репозитории PECL, а не в репозитории пакетов.
sudo pecl install uploadprogress
После завершения установки вы получите следующий результат:
Далее выполните следующую команду, чтобы создать новую конфигурацию для включения расширения uploadprogress.
cat ; configuration for php uploadprogress module ; priority 15 extension=uploadprogress.so EOF
Перезапустите службу httpd, чтобы применить изменения в PHP.
sudo systemctl restart httpd
Наконец, проверьте модуль uploadprogress с помощью следующей команды. Убедитесь, что модуль uploadprogress включен в вашей установке PHP.
php -m | grep uploadprogress
Настройка MariaDB
После настройки PHP вам нужно будет настроить установку сервера MariaDB. Вы закрепите MariaDB с помощью командной строки, а затем создадите новую базу данных и пользователя для Drupal с помощью клиента MariaDB.
Защитите ваш сервер MariaDB с помощью следующей команды.
sudo mariadb-secure-installation
Во время процесса введите Y, чтобы подтвердить и применить новую конфигурацию, или N, чтобы отклонить конфигурацию. Ниже приведены конфигурации MariaDB, которые будут запрошены:
- Переключиться на аутентификацию unix_socket? Введите n и нажмите ENTER. По умолчанию корневой пользователь MariaDB уже защищен. По желанию вы можете включить его, введя y для yes.
- Изменить пароль корневого пользователя? Введите y для подтверждения и установите новый пароль корневого пользователя MariaDB.
- Удалить анонимного пользователя? Введите y для подтверждения.
- Запретить удаленный вход root? Введите y для подтверждения. Будет разрешено только локальное подключение, если вы используете пользователя MariaDB root.
- Удалить тестовую базу данных и доступ к ней? Введите y, чтобы подтвердить и удалить базу данных по умолчанию ‘test’.
- Наконец, введите y еще раз, чтобы перезагрузить все привилегии таблиц на вашем сервере MariaDB и применить новые изменения.
Войдите на сервер MariaDB с помощью команды mariadb, приведенной ниже. Введите пароль корня MariaDB, когда появится запрос.
sudo mariadb -u root -p
Теперь выполните следующие запросы, чтобы создать новую базу данных drupaldb, пользователя drupal с паролем p4ssword. Эта база данных будет использоваться Drupal, поэтому не забудьте скорректировать следующие сведения о базе данных с учетом вашей информации.
CREATE DATABASE drupaldb; CREATE USER drupal@localhost IDENTIFIED BY 'p4ssword'; GRANT ALL ON drupaldb.* TO drupal@localhost WITH GRANT OPTION; FLUSH PRIVILEGES;
Далее проверьте привилегии пользователя Drupal с помощью запроса, приведенного ниже. Вы увидите, что пользователь Drupal может получить доступ к базе данных Drupaldb.
SHOW GRANTS FOR drupal@localhost;
Наконец, введите quit, чтобы выйти из сервера MariaDB.
Загрузка исходного кода Drupal
Теперь, когда вы настроили MariaDB и создали базу данных и пользователя, вы можете скачать исходный код Drupal и настроить DocuemtRoot или корневую веб-директорию для установки Drupal. В этом случае вы скачаете исходный код Drupal через wget, а не установите его через Composer.
Перейдите в каталог /var/www и загрузите последнюю версию исходного кода Drupal с помощью команды wget, приведенной ниже.
cd /var/www/ wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gz
После загрузки извлеките исходный код Drupal и переименуйте извлеченную директорию в drupal. Таким образом, ваша директория DocumentRoot для Drupal будет доступна по адресу /var/www/drupal
tar -xvf drupal.tar.gz mv drupal-* drupal
Теперь выполните приведенную ниже команду, чтобы изменить право собственности на каталог/var/www/drupal на пользователя apache и изменить разрешение на 755.
sudo chown -R apache:apache /var/www/drupal/ sudo chmod -R 755 /var/www/drupal/
Создание виртуального хоста Httpd
В этом разделе вы создадите новую конфигурацию виртуального хоста Httpd для Drupal. Поэтому убедитесь, что вы подготовили доменное имя для Drupal, будь то локальное или публичное доменное имя.
Во-первых, создайте новую конфигурацию виртуального хоста httpd /etc/httpd/conf.d/drupal.conf, используя следующую команду редактора nano.
sudo nano /etc/httpd/conf.d/drupal.conf
Вставьте конфигурацию ниже и не забудьте изменить параметр ServerName на ваше доменное имя.
ServerName Drupal.local
ServerAdmin [email protected]
DocumentRoot /var/www/drupal
ErrorLog /var/log/httpd/Drupal.local.error.log
CustomLog /var/log/httpd/Drupal.local.access.log combined
Options FollowSymlinks
#Allow .htaccess
AllowOverride All
Require all granted
SecRuleEngine Off
# or disable only problematic rules
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Сохраните файл и выйдите из редактора после завершения работы.
Теперь выполните приведенную ниже команду, чтобы проверить конфигурацию httpd. Убедитесь, что у вас есть выход Syntax OK, подтверждающий, что у вас правильный синтаксис httpd.
sudo apachectl configtest
Наконец, перезапустите httpd командой ниже, чтобы применить новые изменения виртуального хоста.
sudo systemctl restart httpd
Настройка HTTPS через Certbot
В этом разделе вы настроите HTTPS для Drupal через Certbot и Letsencrypt. Делайте это, если вы используете публичный домен, для локального домена вы можете сгенерировать самоподписанный сертификат.
Установите Certbot и плагин Certbot Apache с помощью команды ниже. Введите y для подтверждения установки.
sudo dnf install certbot python3-certbot-apache
После завершения установки сгенерируйте SSL/TLS сертификаты для вашей установки Drupal с помощью команды certbot, приведенной ниже. Не забудьте изменить доменное имя и адрес электронной почты на свои данные.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d Drupal.local
После завершения процесса ваши SSL/TLS сертификаты будут доступны в директории/etc/letsencrypt/live/domain.com. Кроме того, ваша установка Drupal должна быть автоматически настроена на HTTPS.
Установка Drupal
Откройте веб-браузер и зайдите на доменное имя установки Drupal, например https://Drupal.local/.
Выберите предпочтительный язык и нажмите Сохранить и продолжить кнопка.
Для профиля установки выберите Стандартный, если вы впервые устанавливаете Drupal, затем нажмите Сохранить и продолжить.
После завершения проверки системы вы увидите конфигурацию базы данных для Drupal. Введите информацию о вашей базе данных MariaDB, нажмите кнопку Сохранить и продолжить снова.
Теперь установка Drupal должна начаться, и вы увидите следующее:
После завершения установки введите информацию о вашем сайте Drupal и создайте нового пользователя-администратора для Drupal. Затем нажмите Сохранить и продолжить для подтверждения.
Когда настройка будет завершена, вы получите домашнюю страницу Drupal, как показано ниже:
Заключение
Поздравляем! Вы установили Drupal на сервер Alma Linux 9. Вы установили Drupal с Httpd, MariaDB и PHP. Также вы защитили Drupal с помощью SSL/TLS от Letsencrypt. Установив Drupal, начните добавлять новые темы или устанавливать расширения.