// blog

Как установить и настроить Drupal на VPS Linux: полное руководство

September 10, 2026 · by Alex M.

Как установить и настроить Drupal на VPS Linux: полное руководство

Drupal — одна из самых мощных CMS с открытым исходным кодом. В отличие от WordPress, Drupal особенно хорошо подходит для сайтов со сложными структурами данных: государственных порталов, образовательных платформ, корпоративных приложений и крупных медиасайтов. Если вам нужна максимальная гибкость и полный контроль над архитектурой сайта — Drupal является оптимальным выбором.

В этом руководстве вы узнаете, как установить и настроить Drupal 10 на VPS NVMe с Ubuntu 22.04 — от чистого сервера до полноценного, защищённого сайта.

Почему Drupal лучше запускать на VPS, а не на shared-хостинге?

Drupal требует больше ресурсов, чем большинство простых CMS. На shared-хостинге cPanel Drupal может работать для небольших проектов, однако при росте нагрузки вы столкнётесь с ограничениями памяти PHP, лимитами на процессы и невозможностью тонкой настройки сервера.

VPS даёт вам:
- Полный контроль над конфигурацией PHP, Nginx/Apache и MariaDB
- Выделенную оперативную память (Drupal рекомендует минимум 256 МБ для PHP)
- Возможность установки любых расширений PHP
- Быстрое масштабирование при росте трафика

Для production-сайта на Drupal оптимальным выбором станет VPS SSD или VPS NVMe.

Системные требования Drupal 10

Перед установкой убедитесь, что ваш VPS соответствует минимальным требованиям:

  • ОС: Ubuntu 22.04 LTS (рекомендуется)
  • Веб-сервер: Apache 2.4+ или Nginx 1.18+
  • PHP: 8.1, 8.2 или 8.3
  • База данных: MySQL 8.0+, MariaDB 10.6+, PostgreSQL 14+
  • RAM: минимум 512 МБ (рекомендуется 1–2 ГБ)
  • Расширения PHP: gd, mbstring, pdo, xml, curl, zip, opcache, intl

Шаг 1: Обновление сервера и установка зависимостей

Подключитесь к VPS по SSH и обновите пакеты:

sudo apt update && sudo apt upgrade -y

Установите Apache, MariaDB и PHP с необходимыми расширениями:

sudo apt install -y apache2 mariadb-server mariadb-client \n  php8.1 php8.1-cli php8.1-fpm php8.1-mysql php8.1-gd \n  php8.1-mbstring php8.1-xml php8.1-curl php8.1-zip \n  php8.1-intl php8.1-opcache php8.1-apcu \n  libapache2-mod-php8.1 unzip curl git

Включите необходимые модули Apache:

sudo a2enmod rewrite expires headers
sudo systemctl restart apache2

Шаг 2: Настройка базы данных MariaDB

Запустите безопасную установку MariaDB:

sudo mysql_secure_installation

Отвечайте Y на все вопросы и установите надёжный пароль для root.

Создайте базу данных и пользователя для Drupal:

sudo mysql -u root -p
CREATE DATABASE drupal10 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'drupaluser'@'localhost' IDENTIFIED BY 'NadezhniyParol123!';
GRANT ALL PRIVILEGES ON drupal10.* TO 'drupaluser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Важно: Всегда используйте сложные пароли и отдельного пользователя для каждого приложения — никогда не используйте root.

Шаг 3: Загрузка и установка Drupal 10

Drupal 10 использует Composer в качестве официального менеджера пакетов.

Установите Composer глобально:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer --version

Создайте проект Drupal 10 в директории веб-сервера:

cd /var/www
sudo composer create-project drupal/recommended-project drupal10

Установите правильные права доступа:

sudo chown -R www-data:www-data /var/www/drupal10
sudo chmod -R 755 /var/www/drupal10
sudo chmod -R 775 /var/www/drupal10/web/sites/default/files

Шаг 4: Настройка Virtual Host в Apache

Создайте файл конфигурации для сайта Drupal:

sudo nano /etc/apache2/sites-available/drupal10.conf

Добавьте следующую конфигурацию (замените example.com на ваш домен):

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/drupal10/web

    <Directory /var/www/drupal10/web>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/drupal10-error.log
    CustomLog ${APACHE_LOG_DIR}/drupal10-access.log combined
</VirtualHost>

Активируйте сайт и деактивируйте дефолтный:

sudo a2ensite drupal10.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2

Шаг 5: Оптимизация PHP для Drupal

Отредактируйте php.ini для повышения производительности:

sudo nano /etc/php/8.1/apache2/php.ini

Измените или добавьте следующие значения:

memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_time = 300
date.timezone = Europe/Chisinau
opcache.enable = 1
opcache.memory_consumption = 128
opcache.max_accelerated_files = 10000

Перезапустите Apache:

sudo systemctl restart apache2

Шаг 6: Установка Drupal через веб-интерфейс

Откройте браузер и перейдите на http://example.com. Вас встретит мастер установки Drupal.

Этапы в веб-интерфейсе:

  1. Выбор языка — выберите Russian или English
  2. Профиль установкиStandard для обычных сайтов или Minimal для максимального контроля
  3. Проверка требований — Drupal покажет возможные проблемы с конфигурацией PHP
  4. Настройка базы данных:
    - Тип: MySQL, MariaDB
    - База данных: drupal10
    - Пользователь: drupaluser
    - Пароль: установленный ранее
    - Хост: localhost
  5. Установка — процесс занимает 1–3 минуты
  6. Настройка сайта: введите название, email и данные администратора

После завершения вы попадёте в панель управления Drupal.

Шаг 7: Безопасность установки Drupal

Безопасность критически важна для любой CMS. Вот обязательные меры:

Защита директории sites/default

sudo chmod 555 /var/www/drupal10/web/sites/default
sudo chmod 444 /var/www/drupal10/web/sites/default/settings.php

Установка SSL-сертификата

Любой production-сайт должен работать по HTTPS. Используйте SSL-сертификат или бесплатный Let's Encrypt:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d example.com -d www.example.com

Настройки безопасности в settings.php

Отредактируйте /var/www/drupal10/web/sites/default/settings.php и добавьте:

// Отключить отображение ошибок в продакшене
$config['system.logging']['error_level'] = 'hide';

// Доверенные хосты
$settings['trusted_host_patterns'] = [
  '^example\.com$',
  '^www\.example\.com$',
];

Включение модуля Security Kit

С помощью Drush (официальный CLI для Drupal):

cd /var/www/drupal10
sudo -u www-data composer require drupal/seckit
sudo -u www-data vendor/bin/drush en seckit -y

Шаг 8: Оптимизация производительности Drupal

Drupal включает несколько встроенных механизмов кэширования:

Включение встроенного кэша

В Admin → Configuration → Performance:
- Включите „Cache pages for anonymous users"
- Включите „Cache blocks"
- Установите „Minimum cache lifetime" на 10–30 минут

Агрегация CSS/JS

Там же в Performance:
- Отметьте „Aggregate CSS files"
- Отметьте „Aggregate JavaScript files"

Это значительно снижает количество HTTP-запросов.

Redis для продвинутого кэширования

Для сайтов с высокой нагрузкой интегрируйте Redis как бэкенд кэша:

sudo apt install redis-server php8.1-redis -y
sudo systemctl enable redis-server
cd /var/www/drupal10
sudo -u www-data composer require drupal/redis

Добавьте в settings.php:

$settings['redis.connection']['host'] = '127.0.0.1';
$settings['redis.connection']['port'] = 6379;
$settings['cache']['default'] = 'cache.backend.redis';

Шаг 9: Управление с помощью Drush

Drush — официальный CLI для Drupal, который значительно экономит время:

# Очистить кэш
sudo -u www-data vendor/bin/drush cr

# Применить обновления базы данных
sudo -u www-data vendor/bin/drush updb -y

# Применить конфигурации
sudo -u www-data vendor/bin/drush cim -y

# Экспортировать конфигурации
sudo -u www-data vendor/bin/drush cex -y

# Список установленных модулей
sudo -u www-data vendor/bin/drush pm:list --status=enabled

Шаг 10: Резервное копирование и обслуживание

Настройка регулярного резервного копирования обязательна. Создайте простой скрипт:

sudo nano /usr/local/bin/backup-drupal.sh
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backups/drupal"
mkdir -p $BACKUP_DIR

# Резервная копия базы данных
mysqldump -u drupaluser -pNadezhniyParol123! drupal10 | gzip > $BACKUP_DIR/db-$DATE.sql.gz

# Резервная копия файлов
tar -czf $BACKUP_DIR/files-$DATE.tar.gz /var/www/drupal10/web/sites/default/files

# Хранить последние 7 резервных копий
find $BACKUP_DIR -name '*.gz' -mtime +7 -delete

echo "Резервное копирование Drupal завершено: $DATE"

Сделайте скрипт исполняемым и добавьте в cron:

sudo chmod +x /usr/local/bin/backup-drupal.sh
sudo crontab -e

Добавьте строку:

0 3 * * * /usr/local/bin/backup-drupal.sh >> /var/log/drupal-backup.log 2>&1

Обновление Drupal и модулей

Drupal 10 обновляется через Composer:

# Обновить Drupal core
cd /var/www/drupal10
sudo -u www-data composer update drupal/core-recommended drupal/core-composer-scaffold --with-all-dependencies

# Применить обновления базы данных
sudo -u www-data vendor/bin/drush updb -y

# Очистить кэш
sudo -u www-data vendor/bin/drush cr

Рекомендация: Всегда тестируйте обновления в staging-окружении перед применением на продакшене. С управляемым выделенным сервером эту задачу можно делегировать команде администраторов.

Drupal vs WordPress: когда выбирать Drupal?

Критерий Drupal WordPress
Кастомные типы контента ✅ Нативно, гибко ⚠️ Через плагины
Enterprise-безопасность ✅ Отличная ⚠️ Зависит от плагинов
Порог вхождения ⚠️ Высокий ✅ Низкий
Масштабируемость ✅ Очень хорошая ✅ Хорошая
Экосистема тем/плагинов ⚠️ Меньше ✅ Огромная
Подходит для малых сайтов ⚠️ Избыточно ✅ Идеально

Если вам нужен хостинг WordPress, оптимизированный для более простого сайта — это самое быстрое решение. Drupal раскрывается в сложных проектах с множеством типов контента, гранулярными ролями пользователей и расширенными API-интеграциями.

Частые проблемы и их решения

Ошибка „The provided host name is not valid"

Добавьте trusted_host_patterns в settings.php (см. Шаг 7).

Drupal не может записывать в директорию files

sudo chown -R www-data:www-data /var/www/drupal10/web/sites/default/files
sudo chmod -R 775 /var/www/drupal10/web/sites/default/files

Таймаут при установке модулей через Composer

composer config --global process-timeout 600

Медленные страницы или ошибки памяти

Увеличьте memory_limit в php.ini до 512M и убедитесь, что OPcache включён.

Заключение

Drupal 10 на VPS Linux — мощная комбинация для серьёзных сайтов и веб-приложений. При правильной настройке стека LAMP, оптимизации PHP, активном SSL и автоматическом резервном копировании вы получите стабильную, безопасную и производительную платформу.

Если вы хотите сосредоточиться на разработке, а не на администрировании инфраструктуры, команда CLIQHOST предлагает услуги управления серверами и VPS NVMe с выделенной технической поддержкой. Свяжитесь с нами — подберём решение под ваши задачи.

SHARE
// Что говорят наши клиенты

Что говорят наши клиенты

Реальные отзывы клиентов, которые доверяют CLIQHOST за производительность, надёжность и профессиональную техническую поддержку.

★★★★★

"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău