Установка Drupal · 13 min read · Oct 13, 2025
Как установить Drupal CMS с Nginx на Rocky Linux 8

Drupal — это бесплатная и открытая система управления веб-контентом, написанная на PHP и распространяемая под лицензией GNU General Public License. Drupal предоставляет мощный инструмент управления контентом с продвинутыми API для многоканальной публикации.
Drupal является одной из самых используемых CMS в интернете, используется как минимум на 14% из 10 000 лучших веб-сайтов в интернете и применяется для глобальных корпоративных отраслей, правительств, образования и сайтов учреждений. Drupal предоставляет высокомасштабируемую систему, интегрированную с цифровыми приложениями, и может использоваться для создания многосайтов для различных организаций с поддержкой нескольких языков.
В этом руководстве вы узнаете, как настроить CMS Drupal (Система управления контентом) с LEMP Stack на сервере Rocky Linux. Вы также узнаете, как запустить Drupal на Rocky Linux с включенным режимом SELinux и активированным Firewalld.
Предварительные требования
Для начала работы с этим руководством вам понадобятся следующие требования:
- Сервер Rocky Linux — в этом примере используется Rocky Linux 8.x с именем хоста ‘drupal-server‘.
- Непривилегированный пользователь с правами администратора sudo/root.
- Доменное имя, указывающее на IP-адрес сервера Rocky Linux — особенно когда вы находитесь в рабочей среде.
Настройка репозиториев
LEMP Stack (Nginx, MariaDB/MySQL и PHP-FPM) — это группа программного обеспечения с открытым исходным кодом для хостинга веб-приложений. На Rocky Linux большинство пакетов LEMP Stack доступны в сторонних репозиториях.
На первом этапе вы добавите и активируете два репозитория в вашей системе. Вы добавите репозиторий EPEL, который предоставляет дополнительные пакеты для операционных систем на базе RHEL, и репозиторий REMI, который предоставляет несколько версий пакетов PHP.
Запустите следующую команду, чтобы добавить репозиторий EPEL в вашу систему Rocky Linux. Когда будет предложено подтвердить, введите y и нажмите ENTER.
sudo dnf install epel-release
Теперь выполните команду dnf ниже, чтобы добавить репозиторий REMI для Rocky Linux 8.4.
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpmВведите y и нажмите ENTER, чтобы продолжить и добавить репозиторий Remi.

Наконец, выполните команду dnf ниже, чтобы проверить список доступных репозиториев в вашей системе. Вы должны увидеть два дополнительных репозитория EPEL и REMI, добавленных в систему Rocky Linux.
sudo dnf repolist
Установка зависимостей пакетов
Drupal — это гибкая и мощная CMS, которую можно установить с любым веб-сервером, таким как Apache2/httpd, Nginx или IIS Microsoft. Также Drupal поддерживает несколько СУБД, включая MariaDB/MySQL, PostgreSQL и SQLite. Для других баз данных, таких как Microsoft SQL Server и MongoDB, вы можете использовать обе через модули сообщества.
Теперь вы установите зависимости пакетов LEMP Stack для Drupal. Вы установите Nginx через репозиторий EPEL, установите MariaDB из appstream и пакеты PHP 8.1 из репозитория REMI.
Сначала сбросьте и активируйте модуль PHP из репозитория REMI с помощью команды dnf ниже. В этом примере вы активируете модуль для PHP 8.1, который поддерживается последней версией Drupal.
sudo dnf module reset php
sudo dnf module enable php:remi-8.1Когда будет предложено, введите y, чтобы подтвердить и активировать репозиторий PHP 8.1 REMI, и нажмите ENTER, чтобы продолжить.

Затем используйте команду dnf ниже, чтобы установить основные пакеты LEMP stack.
sudo dnf install nginx mariadb-server php php-fpm 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Введите y и нажмите ENTER, когда будет предложено подтвердить.

Также введите y, когда будет предложено подтвердить добавление GPG-ключа для некоторых репозиториев.

После установки пакетов LEMP Stack вы можете использовать следующую команду systemctl, чтобы запустить службы Nginx, MariaDB и PHP-FPM. Также вы активируете все эти службы, чтобы они автоматически запускались при загрузке.
sudo systemctl start nginx mariadb php-fpm
sudo systemctl enable nginx mariadb php-fpmТеперь вы увидите вывод, похожий на следующий — LEMP Stack теперь должен работать на вашей системе Rocky Linux, и все службы для LEMP Stack активированы.

Настройка Firewalld
Firewalld — это брандмауэр по умолчанию в операционных системах на базе RHEL, включая Rocky Linux. Рекомендуется запускать Drupal или любые веб-приложения с включенным брандмауэром, особенно в рабочей среде.
Теперь вы добавите оба порта HTTP и HTTPS в firewalld, чтобы разрешить клиентам доступ к вашей установке Drupal.
Запустите следующую команду firewall-cmd ниже, чтобы добавить службы HTTP и HTTPS в firewalld.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanentТеперь перезагрузите firewalld, чтобы применить новые изменения. Затем проверьте список активированных служб в firewalld.
sudo firewall-cmd --reload
sudo firewall-cmd --list-servicesВы должны увидеть добавленные службы HTTP и HTTPS в firewalld.

Настройка сервера MariaDB
На этом этапе вы начнете настраивать базу данных MariaDB, которая будет использоваться для Drupal. Вы начнете с обеспечения безопасности развертывания MariaDB, затем создадите новую базу данных и пользователя для установки Drupal.
Перед началом выполните следующую команду, чтобы проверить службу MariaDB и убедиться, что служба работает.
sudo systemctl status mariadbНиже приведен вывод, когда служба MariaDB работает.

Далее выполните следующую команду для обеспечения безопасности развертывания сервера MariaDB. Эта команда ‘mysql_secure_installation‘ предоставляется пакетами MariaDB, которые помогают вам обеспечить безопасность установки.
sudo mysql_secure_installationТеперь вам будут заданы несколько вопросов, связанных с конфигурацией сервера MariaDB:
- Стандартная установка MariaDB не имеет пароля, нажмите ENTER, когда будет предложено ввести пароль.
- Теперь введите Y, чтобы установить пароль root для MariaDB. Затем введите новый пароль для MariaDB и повторите пароль.
- Введите Y, чтобы удалить анонимного пользователя из вашей установки MariaDB.
- Введите Y снова, когда будет предложено отключить удаленный доступ для пользователя root MariaDB.
- Введите Y, чтобы удалить стандартную базу данных test из вашей MariaDB.
- Наконец, введите Y, чтобы перезагрузить привилегии таблиц и применить новые изменения.
После обеспечения безопасности развертывания MariaDB вы далее настроите новую базу данных и пользователя для Drupal.
Войдите в оболочку MySQL/MariaDB через пользователя root с помощью следующей команды mysql.
sudo mysql -u root -pЗапустите следующие запросы, чтобы создать новую базу данных и пользователя для Drupal. В этом примере вы создадите базу данных drupaldb с пользователем drupal@localhost. Также обязательно измените пароль для базы данных по умолчанию.
CREATE DATABASE drupaldb;
CREATE USER drupal@localhost IDENTIFIED BY 'password';
GRANT ALL ON drupaldb.* TO drupal@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
Далее выполните следующие запросы, чтобы проверить привилегии для пользователя MariaDB drupal@localhost. Вы увидите, что пользователь MariaDB drupal@localhost имеет доступ и привилегии к базе данных drupaldb.
SHOW GRANTS FOR drupal@localhost;Теперь выполните запрос ‘exit‘ или ‘quit‘, чтобы выйти из оболочки MariaDB.

Установка расширения PECL: uploadprogress
uploadprogress — это расширение, которое будет использоваться Drupal для отображения индикатора прогресса. uploadprogress можно установить через репозиторий PECL (PHP Extension Community Library).
Теперь вы установите расширение uploadprogress из репозитория PECL и активируете его в вашей установке PHP.
Для начала выполните следующую команду, чтобы убедиться, что команда ‘pecl‘ доступна в вашей системе. Если ‘pecl‘ доступен, вы должны увидеть полный путь к бинарному файлу ‘pecl‘.
which peclТеперь выполните команду ‘pecl‘ ниже, чтобы установить расширение uploadprogress.
sudo pecl install uploadprogressКогда установка начнется, вы должны увидеть вывод, похожий на следующий:

Далее выполните следующую команду, чтобы создать новый файл конфигурации ‘/etc/php.d/uploadprogress.ini‘ и активировать расширение uploadprogress.
cat <Наконец, перезапустите службу PHP-FPM, чтобы применить новые изменения. PHP-FPM теперь работает с активированным дополнительным расширением uploadprogress.
sudo systemctl restart php-fpm
Настройка PHP-FPM
Теперь вы настроите базовую конфигурацию PHP-FPM через файл ‘/etc/php.ini‘ и настроите конкретный пул PHP-FPM для Drupal.
Измените файл ‘/etc/php.ini‘ с помощью следующего редактора nano.
sudo nano /etc/php.iniИзмените стандартную конфигурацию следующим образом. Также обязательно измените параметр date.timezone в соответствии с вашей средой.
memory_limit = 512M
upload_max_filesize = 60M
max_execution_time = 300
date.timezone = Europe/StockholmСохраните файл и выйдите из редактора, когда закончите.
Далее скопируйте конфигурацию пула PHP-FPM по умолчанию ‘/etc/php-fpm.d/www.conf‘ в ‘‘/etc/php-fpm.d/drupal.conf’. Затем измените новую конфигурацию пула ‘/etc/php-fpm.d/drupal.conf‘ с помощью редактора nano.
sudo cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/drupal.conf
sudo nano /etc/php-fpm.d/drupal.confИзмените стандартное имя на ‘[drupal]‘ и стандартного пользователя и группу на ‘nginx‘. Также обязательно измените файл сокета для пула PHP-FPM ‘drupal’ на ‘/run/php-fpm/drupal.sock’.
[drupal]
user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx
listen = /run/php-fpm/drupal.sockСохраните файл и выйдите из редактора, когда закончите.
Теперь перезапустите службу PHP-FPM с помощью команды systemctl ниже. Затем проверьте статус службы PHP-FPM.
sudo systemctl restart php-fpm
sudo systemctl status php-fpmВы должны получить вывод, похожий на следующий — служба PHP-FPM работает.

Далее выполните следующую команду, чтобы создать новый файл PHPINFO ‘/usr/share/nginx/html/info.php‘.
cat <
EOF Наконец, откройте веб-браузер и посетите IP-адрес сервера, добавив путь ‘/info.php’ (т.е.: http://192.168.5.100/info.php). Вы должны получить подробную информацию о PHP.

Загрузка исходного кода Drupal
На этом этапе вы завершили настройку сервера базы данных MariaDB и PHP-FPM для установки Drupal. Далее вы загрузите последнюю версию Drupal на свой сервер.
Сначала переместите текущий рабочий каталог в ‘/tmp’ и загрузите последнюю версию Drupal с помощью команды wget, как показано ниже. Вы должны увидеть файл ‘drupal.tar.gz‘ после завершения процесса загрузки.
cd /tmp
wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gzДалее извлеките файл ‘drupal.tar.gz‘ с помощью команды tar и переместите извлеченный каталог в ‘/var/www/drupal‘, который будет использоваться в качестве установки для Drupal.
tar -xvf drupal.tar.gz
mv drupal-* /var/www/drupalНаконец, выполните следующую команду, чтобы изменить владельца и разрешения каталога установки Drupal ‘/var/www/drupal‘. Владельцем должен быть пользователь и группа ‘nginx‘, чтобы веб-сервер Nginx мог читать и получать доступ к исходному коду Drupal. А для разрешений это должно быть ‘755‘.
sudo chown -R nginx:nginx /var/www/drupal/
sudo chmod -R 755 /var/www/drupal/Настройка SELinux
После загрузки исходного кода Drupal вы далее настроите SELinux для Drupal. Вы загрузите инструмент управления SELinux на свой сервер и настроите маркировку для исходного кода Drupal и дополнительные правила для Nginx.
Запустите команду dnf ниже, чтобы установить пакет ‘policycoreutils-python-utils‘ для управления SELinux в вашей системе.
sudo dnf install policycoreutils-python-utilsКогда будет предложено, введите y, чтобы подтвердить установку, и нажмите ENTER, чтобы продолжить.

Далее выполните следующую команду, чтобы настроить маркировку для исходного кода Drupal.
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/drupal(/.*)?"
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/drupal/sites/default/settings.php'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/drupal/sites/default/files'
sudo restorecon -Rv /var/www/drupalВыполните следующую команду, чтобы разрешить веб-серверу Nginx доступ к определенным службам. Для установки Drupal вы должны разрешить Nginx доступ к сетевым и почтовым службам.
sudo setsebool -P httpd_can_sendmail on
sudo setsebool -P httpd_can_network_connect onТеперь, когда вы загрузили исходный код Drupal и настроили правильного владельца для пользователя и группы ‘nginx‘, настроили правильные разрешения на ‘755‘ и настроили SELinux для Drupal.
Настройка веб-сервера Nginx
Теперь, когда вы завершили некоторые настройки сервера базы данных MariaDB и PHP-FPM. Также вы загрузили исходный код Drupal и настроили SELinux. На следующем этапе вы настроите блоки сервера Nginx для вашего домена.
Перед тем как начать, убедитесь, что у вас есть доменное имя, указывающее на IP-адрес вашего сервера. Также убедитесь, что вы сгенерировали SSL Letsencrypt.
Создайте новую конфигурацию блоков сервера Nginx ‘/etc/nginx/conf.d/drupal.conf‘ с помощью следующего редактора nano.
sudo nano /etc/nginx/conf.d/drupal.confДобавьте следующую конфигурацию в файл. И обязательно измените доменное имя и путь к SSL-сертификатам. В этом примере используется домен http://drupal.howtoforge.local в качестве основного домена для установки Drupal.
server {
listen 80;
server_name drupal.howtoforge.local;
return 301 https://$host$request_uri;
}
server {
listen 443 http2 ssl;
server_name drupal.howtoforge.local;
root /var/www/drupal;
ssl_certificate /etc/letsencrypt/live/drupal.howtoforge.local/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/drupal.howtoforge.local/privkey.pem;
access_log /var/log/nginx/drupal.howtoforge.local.access.log;
error_log /var/log/nginx/drupal.howtoforge.local.error.log;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \\..*/.*\.php$ {
return 403;
}
location ~ ^/sites/.*/private/ {
return 403;
}
# Блокировать доступ к скриптам в каталоге файлов сайта
location ~ ^/sites/[^/]+/files/.*\.php$ {
deny all;
}
location ~ (^|/)\. {
return 403;
}
location / {
try_files $uri /index.php?$query_string;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1;
}
location ~ /vendor/.*\.php$ {
deny all;
return 404;
}
location ~ '\.php$|^/update.php' {
fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
include fastcgi_params;
# Блокировать атаки httpoxy. См. https://httpoxy.org/.
fastcgi_param HTTP_PROXY "";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param QUERY_STRING $query_string;
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php-fpm/drupal.sock;
}
location ~ ^/sites/.*/files/styles/ { # Для Drupal >= 7
try_files $uri @rewrite;
}
# Обрабатывать частные файлы через Drupal. Путь частных файлов может приходить
# с языковым префиксом.
location ~ ^(/[a-z\-]+)?/system/files/ { # Для Drupal >= 7
try_files $uri /index.php?$query_string;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
try_files $uri @rewrite;
expires max;
log_not_found off;
}
}Сохраните файл и выйдите из редактора, когда закончите.
Теперь выполните следующую команду, чтобы проверить конфигурацию Nginx. Вы должны получить сообщение о выводе, такое как ‘тест успешен - синтаксис в порядке‘, что означает, что у вас правильные конфигурации Nginx и нет ошибок.
sudo nginx -tДалее выполните следующую команду systemctl, чтобы перезапустить службу Nginx и применить новую конфигурацию блока сервера.
sudo systemctl restart nginx
Служба Nginx теперь должна работать с новой конфигурацией блока сервера ‘/etc/nginx/conf.d/drupal.conf’. Выполните следующую команду, чтобы проверить службу Nginx и убедиться, что служба работает.
sudo systemctl status nginxВы должны получить вывод, похожий на следующий — служба Nginx работает.

Теперь вы должны иметь возможность получить доступ к вашей установке Drupal через ваш домен.
Начало установки Drupal
На этом этапе вы завершили настройку зависимостей пакетов для Drupal. Теперь вы можете получить доступ к вашему Drupal через ваш домен.
На этом этапе вы начнете установку Drupal, а также настроите детали о вашем Drupal и создадите администратора для Drupal.
Откройте веб-браузер и посетите доменное имя вашей установки Drupal (т.е.: https://drupal.howtoforge.local/). Вы должны увидеть страницу установки Drupal.
Выберите язык для вашей установки Drupal или вы можете использовать стандартный ‘English‘ и нажмите кнопку ‘Сохранить и продолжить‘.

Выберите профиль установки для вашей установки и нажмите ‘Сохранить и продолжить‘. В этом примере используется профиль ‘Стандартный‘.

Теперь настройте базу данных для вашей установки Drupal. Введите данные базы данных MariaDB и пользователя, которые вы уже создали ранее.
Нажмите Сохранить и продолжить снова.

Теперь начнется установка Drupal.

Введите подробную информацию о вашей установке Drupal. Также обязательно используйте ваше имя пользователя для администратора Drupal и используйте надежный пароль.
Нажмите Сохранить и продолжить.

Когда установка Drupal завершится, вы увидите следующую страницу. Вы можете увидеть сообщения, такие как ‘Поздравляем, вы установили Drupal!‘.

Завершение установки Drupal
Выполните следующую команду, чтобы настроить маркировку для файла конфигурации Drupal и каталога.
sudo restorecon -v /var/www/drupal/sites/default/settings.php
sudo restorecon -Rv /var/www/drupal/sites/default/filesДалее выполните следующую команду, чтобы изменить разрешения файла ‘/var/www/drupal/sites/default/settings.php‘ и сделать его записываемым. Затем отредактируйте файл с помощью редактора nano.
sudo chmod 644 /var/www/drupal/sites/default/settings.php
sudo nano /var/www/drupal/sites/default/settings.phpРаскомментируйте строку скрипта ‘trusted_host_patterns‘ и добавьте ваше доменное имя. Это включит trusted_host в вашей установке Drupal.
$settings['trusted_host_patterns'] = [
'^hwdomain\.io$',
'^drupal.hwdomain\.io$',
];Сохраните файл и выйдите из редактора, когда закончите.
Наконец, вернитесь в ваш веб-браузер на вашем сайте Drupal и посетите отчет о статусе по следующему URL. Замените основное доменное имя на ваше доменное имя — или вы можете получить к нему доступ через меню Администрирование > Отчеты.
https://drupal.howtoforge.local/admin/reports/status
В следующем отчете — вы можете увидеть, что 25 системных требований для установки Drupal проверены. Это означает, что ваша установка Drupal корректна и не имеет ошибок.

Заключение
В этом руководстве вы узнали, как установить последнюю версию Drupal v9 на сервер Rocky Linux. Вы также узнали об установке LAMP Stack (Linux, Apache2/httpd, MySQL/MariaDB и PHP) и базовой конфигурации для хостинга Drupal. Кроме того, вы узнали, как устанавливать расширения PHP из репозитория PECL (PHP Extension Community Library).
С Drupal, работающим и защищенным с помощью SSL-сертификатов и включенной конфигурацией ‘trusted_hosts’, вы теперь можете расширить развертывание Drupal, установив новые темы или добавив некоторые плагины для вашей установки Drupal.
Get new posts in your inbox
No spam. Unsubscribe anytime.