MAATRIX / Блог / Как установить и настроить Drupal на VPS

Как установить и настроить Drupal на VPS

Как установить и настроить Drupal на VPS

MAATRIX

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 — десятки моделей в одном окне. Оплата картой РФ и по СБП.