Установка Drupal на Debian 11 с Apache и Let's Encrypt
TL;DR
Кратко: покажу пошагово, как установить Drupal на сервер с Debian 11, настроить Apache, создать базу данных MariaDB и подключить бесплатный SSL от Let’s Encrypt (Certbot). Все основные команды и пример конфигурации виртуального хоста приведены.
Важно: перед началом убедитесь, что домен указывает на IP сервера и у вас есть root-доступ.

О чём эта инструкция
Эта статья описывает установку Drupal CMS на Debian 11 с Apache и автоматическим получением SSL-сертификата через Let’s Encrypt. Подходит для простого сайта или блога. Я объясняю команды, конфигурацию и даю проверочные шаги и рекомендации по безопасности.
Кому это полезно
- Системным администраторам, которые разворачивают сайт на Debian.
- Разработчикам, которые хотят быстро подготовить среду для тестирования.
- Тем, кто хочет хостить Drupal с бесплатным SSL.
Синонимы запроса
Установка Drupal, установить Drupal на Debian, Drupal + Apache + Let’s Encrypt, развертывание Drupal, LAMP для Drupal.
Предупреждение
Перед выполнением команд сделайте резервные копии важных данных. Команды выполняйте с правами root или через sudo.
Требования
- Сервер с Debian 11.
- Домен, указывающий на IP сервера (A-запись).
- Доступ root или пользователь с sudo-права.
Шаг 1 — Установка LAMP (Apache, MariaDB, PHP)
Drupal работает на LAMP. Если стек не установлен, выполните:
apt-get install apache2 mariadb-server mariadb-client php libapache2-mod-php php-cli php-mysql php-zip php-gd php-fpm php-json php-common php-intl php-mbstring php-curl php-xml php-pear php-tidy php-soap php-bcmath php-xmlrpc -yПосле установки отредактируйте php.ini, чтобы увеличить лимиты и выставить часовой пояс:
nano /etc/php/7.4/apache2/php.iniИзмените (или добавьте) следующие строки:
memory_limit = 256M
upload_max_filesize = 32M
max_execution_time = 300
date.timezone = Asia/KolkataЗамените date.timezone на ваш часовой пояс (например, Europe/Moscow). Сохраните файл и перезапустите Apache, если уже запущен.
Шаг 2 — Создание базы данных для Drupal
Войдите в MariaDB:
mysqlСоздайте базу и пользователя (замените securepassword на надёжный пароль):
MariaDB [(none)]> CREATE DATABASE drupaldb;
MariaDB [(none)]> CREATE USER 'drupaluser'@'localhost' IDENTIFIED BY "securepassword";
MariaDB [(none)]> GRANT ALL ON drupaldb.* TO 'drupaluser'@'localhost' IDENTIFIED BY "securepassword";
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;Совет: для безопасности позже выполните mysql_secure_installation и отключите доступ root по паролю извне.
Шаг 3 — Скачивание и размещение файлов Drupal
Скачайте последнюю сборку Drupal и распакуйте её:
wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gz
tar -xvf drupal.tar.gz
mv drupal-* /var/www/html/drupal
chown -R www-data:www-data /var/www/html/drupal/
chmod -R 755 /var/www/html/drupal/Права: www-data — стандартный пользователь Apache в Debian. Проверьте, что веб-сервер имеет доступ к файловой системе сайта.
Шаг 4 — Конфигурация виртуального хоста Apache
Создайте файл конфигурации виртуального хоста:
nano /etc/apache2/sites-available/drupal.confВставьте (замените ServerName и адрес почты):
ServerAdmin [email protected]
DocumentRoot /var/www/html/drupal/
ServerName drupal.example.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Options FollowSymlinks
AllowOverride All
Require all granted
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Включите сайт и модуль перезаписи URL:
a2ensite drupal.conf
a2enmod rewrite
systemctl restart apache2
systemctl status apache2Ожидаемый результат — служба Apache активна и слушает запросы. Если статус показывает ошибку, проверьте синтаксис конфигурации командой apachectl configtest.
Шаг 5 — Доступ к установщику Drupal (веб-интерфейс)
Откройте в браузере: http://drupal.example.com (замените на ваш домен). Должна открыться страница установки.

Выберите язык и нажмите Сохранить и продолжить. Выберите профиль установки (обычно “Standard”).

На странице конфигурации базы введите:
- имя базы: drupaldb
- пользователь: drupaluser
- пароль: securepassword
- хост: localhost

Далее заполните имя сайта, учётную запись администратора и региональные настройки.


После успешной установки вы попадёте в админ-панель Drupal.

Шаг 6 — Включение SSL через Let’s Encrypt (Certbot)
Установите Certbot для Apache и запустите получение сертификата:
apt-get install python3-certbot-apache -y
certbot --apache -d drupal.example.comВ процессе вас попросят ввести e-mail и принять условия. Затем Certbot автоматически создаст SSL-виртуальный хост и предложит перенаправление HTTP → HTTPS. Для новых сайтов рекомендуется выбрать перенаправление.
Certbot создаёт сертификаты в /etc/letsencrypt/live/your-domain/ и настраивает автоматическое обновление (cron/systemd). Проверьте работу с сайтом по HTTPS.
# Для теста обновления сертификатов можно выполнить dry-run:
certbot renew --dry-runПолезные проверки и отладка
- Проверьте доступность портов 80 и 443 (ufw/iptables):
ufw allow 'Apache Full'
ufw status- Протестируйте конфигурацию Apache:
apachectl configtest
systemctl restart apache2Если проблемы с подключением к MariaDB, проверьте лог /var/log/mysql/error.log.
Для проверки SSL используйте SSL Labs: https://www.ssllabs.com/ssltest/
Рекомендации по безопасности и сопровождению
- Запустите mysql_secure_installation и задайте сильный пароль для root MariaDB.
- Отключите доступ к phpinfo.php в продакшене.
- Регулярно применяйте обновления пакетов: apt-get update && apt-get upgrade.
- Ограничьте доступ к /var/www/html/drupal/settings.php: chmod 644 и владелец root или www-data в зависимости от рабочего процесса.
- Следите за автоматическим обновлением Certbot и проверяйте cron/systemd timer: systemctl list-timers | grep certbot.
Критерии приёмки
- Сайт открывается по HTTPS и показывает интерфейс установки Drupal.
- Установка проходит без ошибок: подключение к базе успешно.
- Админ-панель доступна, можно войти под созданным администратором.
- Certbot выдал сертификат и настроил редирект HTTP → HTTPS (если выбран).
Чек-лист для ролей
Системный администратор:
- Проверить DNS A-запись.
- Установить LAMP и Certbot.
- Настроить виртуальный хост и права на файлы.
- Настроить бэкапы и обновления.
Разработчик:
- Убедиться, что Composer и Drush установлены при необходимости.
- Настроить среду разработки (локальные настройки).
- Проверить совместимость модулей и тем.
Контент-менеджер:
- Настроить языки, темы и базовые страницы.
- Проверить права ролей и доступы к разделам.
Мини-методология развёртывания
- Подготовка: DNS, доступ, бэкап.
- Установка ПО: LAMP, Certbot.
- Конфигурация: виртуальный хост, php.ini, права.
- Установка Drupal через веб-интерфейс.
- Финальная проверка: SSL, доступность, бэкапы, мониторинг.
Частые ошибки и как их решать
- Ошибка 500 после установки: проверьте права и логи Apache (/var/log/apache2/error.log).
- Не удаётся подключиться к базе: убедитесь, что параметры в формах совпадают с теми, что вы создали в MariaDB.
- Certbot не может верифицировать домен: проверьте DNS и то, что порт 80 открыт.
FAQ
Q: Нужно ли менять php.ini для больших сайтов? A: Да. Увеличивайте memory_limit и max_execution_time в зависимости от нагрузки и используемых модулей.
Q: Как проверить дату истечения сертификата? A: Выполните: openssl x509 -enddate -noout -in /etc/letsencrypt/live/drupal.example.com/fullchain.pem
Q: Можно ли использовать PostgreSQL вместо MariaDB? A: Drupal поддерживает PostgreSQL, но команды и настройки будут другими.
Итоги
Вы установили Drupal на Debian 11, настроили Apache и подключили бесплатный SSL от Let’s Encrypt. После установки проверьте работу сайта, безопасность и настройте регулярные обновления.
Ключевые шаги: установить LAMP, создать базу, разместить файлы Drupal, настроить виртуальный хост и получить сертификат через Certbot.
Если нужны конфигурации для нескольких сайтов (multi-site) или инструкция по установке Drush/Composer — напишите, и я добавлю раздел с примерами.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента