September 10, 2026 · by Alex M.
Drupal — одна из самых мощных CMS с открытым исходным кодом. В отличие от WordPress, Drupal особенно хорошо подходит для сайтов со сложными структурами данных: государственных порталов, образовательных платформ, корпоративных приложений и крупных медиасайтов. Если вам нужна максимальная гибкость и полный контроль над архитектурой сайта — Drupal является оптимальным выбором.
В этом руководстве вы узнаете, как установить и настроить Drupal 10 на VPS NVMe с Ubuntu 22.04 — от чистого сервера до полноценного, защищённого сайта.
Drupal требует больше ресурсов, чем большинство простых CMS. На shared-хостинге cPanel Drupal может работать для небольших проектов, однако при росте нагрузки вы столкнётесь с ограничениями памяти PHP, лимитами на процессы и невозможностью тонкой настройки сервера.
VPS даёт вам:
- Полный контроль над конфигурацией PHP, Nginx/Apache и MariaDB
- Выделенную оперативную память (Drupal рекомендует минимум 256 МБ для PHP)
- Возможность установки любых расширений PHP
- Быстрое масштабирование при росте трафика
Для production-сайта на Drupal оптимальным выбором станет VPS SSD или VPS NVMe.
Перед установкой убедитесь, что ваш VPS соответствует минимальным требованиям:
Подключитесь к 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
Запустите безопасную установку 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.
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
Создайте файл конфигурации для сайта 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
Отредактируйте 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
Откройте браузер и перейдите на http://example.com. Вас встретит мастер установки Drupal.
Этапы в веб-интерфейсе:
Standard для обычных сайтов или Minimal для максимального контроляMySQL, MariaDBdrupal10drupaluserlocalhostПосле завершения вы попадёте в панель управления Drupal.
Безопасность критически важна для любой CMS. Вот обязательные меры:
sites/defaultsudo chmod 555 /var/www/drupal10/web/sites/default
sudo chmod 444 /var/www/drupal10/web/sites/default/settings.php
Любой 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$',
];
С помощью 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
Drupal включает несколько встроенных механизмов кэширования:
В Admin → Configuration → Performance:
- Включите „Cache pages for anonymous users"
- Включите „Cache blocks"
- Установите „Minimum cache lifetime" на 10–30 минут
Там же в Performance:
- Отметьте „Aggregate CSS files"
- Отметьте „Aggregate JavaScript files"
Это значительно снижает количество HTTP-запросов.
Для сайтов с высокой нагрузкой интегрируйте 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';
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
Настройка регулярного резервного копирования обязательна. Создайте простой скрипт:
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 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 | WordPress |
|---|---|---|
| Кастомные типы контента | ✅ Нативно, гибко | ⚠️ Через плагины |
| Enterprise-безопасность | ✅ Отличная | ⚠️ Зависит от плагинов |
| Порог вхождения | ⚠️ Высокий | ✅ Низкий |
| Масштабируемость | ✅ Очень хорошая | ✅ Хорошая |
| Экосистема тем/плагинов | ⚠️ Меньше | ✅ Огромная |
| Подходит для малых сайтов | ⚠️ Избыточно | ✅ Идеально |
Если вам нужен хостинг WordPress, оптимизированный для более простого сайта — это самое быстрое решение. Drupal раскрывается в сложных проектах с множеством типов контента, гранулярными ролями пользователей и расширенными API-интеграциями.
Добавьте trusted_host_patterns в settings.php (см. Шаг 7).
filessudo 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 config --global process-timeout 600
Увеличьте memory_limit в php.ini до 512M и убедитесь, что OPcache включён.
Drupal 10 на VPS Linux — мощная комбинация для серьёзных сайтов и веб-приложений. При правильной настройке стека LAMP, оптимизации PHP, активном SSL и автоматическом резервном копировании вы получите стабильную, безопасную и производительную платформу.
Если вы хотите сосредоточиться на разработке, а не на администрировании инфраструктуры, команда CLIQHOST предлагает услуги управления серверами и VPS NVMe с выделенной технической поддержкой. Свяжитесь с нами — подберём решение под ваши задачи.
Реальные отзывы клиентов, которые доверяют 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."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."