VPS для Drupal: установка через Composer
Drupal — мощная CMS для крупных проектов, но капризная к окружению. Правильный путь — установка через Composer, а не распаковка архива. Развернём стек, поставим движок и Drush, настроим nginx и SSL. Всё рабочими командами.
Содержание
Стек и зависимости
['Ставим nginx, PHP-FPM с нужными расширениями, MariaDB и Composer — менеджер зависимостей, без которого современный Drupal не собрать.', 'apt update && apt upgrade -y\napt install nginx mariadb-server php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip composer git unzip -y', 'systemctl enable --now nginx mariadb php8.2-fpm', 'Drupal активно работает с кэшем и базой, поэтому NVMe-диск на MAATRIX заметно ускоряет пересборку кэша (drush cr) на больших сайтах.']
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для DrupalБаза данных под Drupal
['mysql_secure_installation', 'mysql -u root -p', "CREATE DATABASE drupal_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;\nCREATE USER 'drupal_user'@'localhost' IDENTIFIED BY 'СложныйПароль123';\nGRANT ALL PRIVILEGES ON drupal_db.* TO 'drupal_user'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;"]
Установка Drupal через Composer
['Создаём проект из официального шаблона и ставим Drush — консольный инструмент управления:', 'cd /var/www\ncomposer create-project drupal/recommended-project drupal\ncd drupal\ncomposer require drush/drush', 'Выдаём права веб-серверу на каталог файлов:', 'chown -R www-data:www-data /var/www/drupal\nchmod -R 755 /var/www/drupal/web', 'Устанавливаем сайт одной командой Drush вместо веб-мастера:', 'cd /var/www/drupal\nvendor/bin/drush site:install standard \\\n --db-url=mysql://drupal_user:СложныйПароль123@localhost/drupal_db \\\n --site-name="Мой сайт" --account-name=admin -y']
Конфиг nginx
['Важно: корень сайта у Drupal — подкаталогweb, а не корень проекта.', "server {\n listen 80;\n server_name ваш-домен.ru;\n root /var/www/drupal/web;\n index index.php;\n\n location / {\n try_files $uri /index.php?$query_string;\n }\n\n location ~ '\\.php$|^/update.php' {\n include snippets/fastcgi-php.conf;\n fastcgi_pass unix:/run/php/php8.2-fpm.sock;\n }\n\n location ~ ^/sites/.*/private/ {\n return 403;\n }\n}", 'ln -s /etc/nginx/sites-available/drupal /etc/nginx/sites-enabled/\nnginx -t && systemctl reload nginx']
SSL и обслуживание
['Выпускаем сертификат:', 'apt install certbot python3-certbot-nginx -y\ncertbot --nginx -d ваш-домен.ru', 'Полезные команды Drush на каждый день — сброс кэша и обновление:', 'vendor/bin/drush cr\nvendor/bin/drush updb -y\ncomposer update drupal/core --with-dependencies', '- Совет: держите приватные файлы вне webroot и запрещайте к ним доступ (см. конфиг выше).
- Ежедневные бэкапы MAATRIX особенно ценны для Drupal — откат после неудачного обновления модуля занимает минуты.
Redis и производительность Drupal
['Drupal без кэша тяжёл: он генерирует много запросов к базе на каждой странице. Вынесите кэш в Redis — это самый заметный прирост скорости. Ставим сервер и расширение, затем модуль через Composer:', 'apt install redis-server php-redis -y\nsystemctl enable --now redis-server\ncomposer require drupal/redis\nvendor/bin/drush en redis -y', 'Подключаем Redis в web/sites/default/settings.php, добавив в конец:', "$settings['redis.connection']['interface'] = 'PhpRedis';\n$settings['redis.connection']['host'] = '127.0.0.1';\n$settings['cache']['default'] = 'cache.backend.redis';", 'После этого сбросьте кэш, чтобы Drupal начал писать в Redis:', 'vendor/bin/drush cr', 'Включите агрегацию CSS и JS в админке (Configuration → Performance) — Drupal склеит и сожмёт ассеты, сократив число запросов. Вместе с Redis и OPcache это превращает тяжёлый Drupal в быстрый сайт даже под нагрузкой, а быстрый NVMe у MAATRIX добавляет запас на пиковый трафик.']
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для DrupalЧастые вопросы
Зачем Composer, нельзя просто распаковать архив?
Composer управляет зависимостями и модулями, обеспечивает корректные обновления безопасности и является официально рекомендованным способом установки Drupal 9/10/11.
Сколько памяти нужно Drupal?
Минимум 2 ГБ, комфортно — 4 ГБ, так как Composer и сборка кэша прожорливы. Для тяжёлых проектов с Solr и Redis берите больше.
Что делать при ошибке памяти Composer?
Увеличьте memory_limit для CLI: COMPOSER_MEMORY_LIMIT=-1 composer update. На VPS с достаточным RAM проблема не возникает.