Как установить и настроить Drupal на VPS
Drupal — мощная PHP-CMS и фреймворк для сложных сайтов, порталов и корпоративных систем, и установить Drupal на VPS сегодня правильнее всего через Composer, который управляет ядром и зависимостями как единым проектом. Drupal выбирают, когда нужна гибкая структура контента, тонкая система прав, многоязычность и возможность строить нестандартную логику. Он требовательнее WordPress и Joomla, зато масштабируется под серьёзные задачи. В этом руководстве развернём Drupal с нуля на связке Apache + PHP + MySQL с использованием Composer: подготовим сервер, поставим окружение, создадим базу, развернём проект, пройдём веб-установщик и выпустим SSL. Сразу о подходе. Современный Drupal (версии 10 и новее) устанавливается не распаковкой архива, а командой Composer, которая скачивает ядро и все библиотеки в структуру проекта. Это стандарт: так проще обновляться и добавлять модули. Поэтому нам понадобятся PHP, Composer и Git. По ресурсам Drupal чуть прожорливее простых CMS: для рабочего сайта берите от 2 ГБ RAM, особенно если планируете много модулей. Всю установку выполняем по SSH под пользователем с sudo. Разберём каждый шаг с командами и пояснениями.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Подготовка сервера и установка LAMP
Обновите систему и установите Apache, MySQL и PHP с расширениями, которые требует Drupal (работа с изображениями, базой, XML, многоязычность, архивы):
apt update && apt -y upgrade
apt -y install apache2 mysql-server php php-mysql php-gd php-xml php-curl php-mbstring php-zip php-intl php-cli unzip git
Включите модуль перезаписи Apache (нужен для «чистых» URL Drupal) и перезапустите веб-сервер:
a2enmod rewrite
systemctl restart apache2
Откройте порты веб-сервера в фаерволе: ufw allow 'Apache Full'. Обратите внимание на php-cli и unzip — они нужны Composer для работы. Набор расширений PHP критичен: Drupal при установке проверяет их наличие и не продолжит без обязательных, поэтому ставим полный список сразу.
Установка Composer
Composer — менеджер зависимостей PHP, через который разворачивается и обновляется Drupal. Установите его глобально. Скачайте установщик и переместите в системный путь:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Проверьте, что Composer работает:
composer --version
Composer скачивает пакеты из интернета, поэтому убедитесь, что сервер имеет доступ к сети. Именно через Composer вы будете не только ставить Drupal, но и добавлять модули и обновлять ядро — это центральный инструмент современного Drupal-проекта, заменивший ручную загрузку файлов.
Заодно полезно установить Drush — консольный помощник Drupal, который резко упрощает администрирование: очистку кэша, применение обновлений базы, управление пользователями и модулями из командной строки. Drush добавляется в проект тем же Composer как зависимость разработки. Он не обязателен для установки, но на боевом сервере экономит массу времени: например, сбросить пароль администратора, если вы его забыли, или пересобрать кэш при странном поведении сайта через Drush проще и быстрее, чем через веб-интерфейс. Поэтому имеет смысл добавить его сразу, ещё до запуска веб-установщика.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPSСоздание базы данных для Drupal
Создадим отдельную базу и пользователя. Войдите в консоль MySQL:
mysql
Выполните команды (замените значения на свои):
CREATE DATABASE drupal CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'drupaluser'@'localhost' IDENTIFIED BY 'надёжный_пароль';
GRANT ALL ON drupal.* TO 'drupaluser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Кодировка utf8mb4 обеспечивает полную поддержку Unicode. Запишите имя базы, пользователя и пароль — они понадобятся в веб-установщике. Отдельный пользователь с правами только на свою базу — правильная практика безопасности, изолирующая сайт от других баз на сервере.
Развёртывание проекта Drupal через Composer
Создайте проект Drupal командой Composer в каталоге сайта. Она скачает ядро и зависимости в подкаталог с правильной структурой:
cd /var/www
composer create-project drupal/recommended-project vashdomen.ru
Composer развернёт проект в /var/www/vashdomen.ru, где корнем сайта (DocumentRoot) будет подкаталог web. Это важная особенность: веб-сервер должен указывать именно на web, а не на корень проекта, чтобы служебные файлы и зависимости не были доступны из интернета. Назначьте владельцем пользователя веб-сервера:
chown -R www-data:www-data /var/www/vashdomen.ru
Такая структура (проект и внутри него публичный web) — современный стандарт безопасности Drupal: чувствительные файлы Composer и настроек лежат выше корня сайта и недоступны снаружи.
Настройка Apache и веб-установщик
Создайте конфиг виртуального хоста Apache с DocumentRoot на /var/www/vashdomen.ru/web и AllowOverride All для работы .htaccess. Активируйте сайт и перезапустите Apache:
a2ensite vashdomen.ru
systemctl reload apache2
Направьте A-запись домена на IP сервера и дождитесь распространения DNS:
dig +short vashdomen.ru
Откройте http://vashdomen.ru — запустится веб-установщик Drupal. Выберите профиль установки (Standard), язык, укажите данные базы (drupal, drupaluser, пароль), затем создайте учётную запись администратора с надёжным паролем и не банальным логином. Установщик проверит окружение и права; если чего-то не хватает, он прямо укажет, что исправить. По завершении сайт готов.
Выпуск SSL, права и обслуживание
После установки выпустите бесплатный SSL через certbot:
apt -y install certbot python3-certbot-apache
certbot --apache -d vashdomen.ru -d www.vashdomen.ru
Certbot настроит HTTPS и редирект, сертификат продлевается автоматически. По безопасности Drupal особое внимание уделяет каталогу настроек: файл web/sites/default/settings.php и каталог web/sites/default/files требуют правильных прав. После установки сделайте settings.php доступным только на чтение, а каталог files — записываемым для веб-сервера. Каталог files — единственный, куда Drupal пишет, и он не должен исполнять PHP (это настраивается в .htaccess).
Обновления Drupal и модулей выполняйте через Composer (composer update) с последующим применением обновлений базы через Drush или интерфейс — это надёжнее ручной замены файлов. Регулярно обновляйте ядро: команда безопасности Drupal выпускает патчи, и устаревшие модули — главный вектор атак. Настройте бэкап проекта и базы вне сервера, включите кэширование в настройках производительности. Drupal любит память, и при росте сайта ресурсов понадобится больше — на VPS MAATRIX они наращиваются без переустановки.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPSОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Почему Drupal ставят через Composer, а не архивом?
Composer управляет ядром и всеми зависимостями как единым проектом, что упрощает обновления и добавление модулей. Это официальный стандарт для Drupal 10+. Ручная распаковка архива устарела и не даёт корректного управления библиотеками.
Почему DocumentRoot указывает на каталог web?
В современной структуре Drupal публичной является только папка web, а файлы Composer, зависимости и настройки лежат выше неё и недоступны из интернета. Это важная мера безопасности — веб-сервер должен смотреть именно на web.
Сколько ресурсов нужно Drupal?
Для рабочего сайта берите от 2 ГБ RAM, особенно с большим числом модулей. Drupal требовательнее WordPress и Joomla. На VPS MAATRIX память увеличивается без переустановки при росте проекта.
Как обновлять Drupal и модули?
Через Composer (composer update) с последующим применением обновлений базы через Drush или админку. Своевременное обновление ядра и модулей критично: устаревшие модули — основной вектор атак на Drupal-сайты.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.