Гид по технологиям

Установка Joomla CMS на Debian 12 — полное руководство

• 8 min read • Руководство • Обновлено 22 Nov 2025
Установка Joomla на Debian 12 — LAMP и SSL
Установка Joomla на Debian 12 — LAMP и SSL

Логотип или схема Joomla на сервере

О чём руководство

Это практическое, ориентированное на sysadmin и разработчиков руководство покрывает весь цикл установки Joomla на Debian 12: подготовка сервера, установка зависимостей, конфигурация PHP и MariaDB, настройка Apache, выпуск и автоматическое продление SSL-сертификатов, а также приёмо-сдаточные тесты и рекомендации по безопасности и резервному копированию.

Важно: в примерах используется версия Joomla v5.0.1 — перед скачиванием проверьте актуальную версию на официальном сайте Joomla.

Основные термины (одной строкой)

  • LAMP: стек Linux + Apache + MariaDB/MySQL + PHP.
  • UFW: Uncomplicated Firewall — простой интерфейс для iptables.
  • Certbot: клиент для автоматического получения сертификатов Let’s Encrypt.

Требования

  • Сервер с Debian 12 (root или пользователь с sudo-права).
  • Домен, указывающий на IP сервера (A-запись) для получения SSL.
  • Доступ по SSH и возможность открывать порты 80/443/22 для конфигурации.

Контрольный список перед началом

  • Резервная копия существующих данных (если сервер используется).
  • Доступ по SSH и правка DNS сделана и распространилась.
  • Установлен и актуализирован apt.

Установка зависимостей и LAMP

Обновите список пакетов перед установкой:

sudo apt update

Процесс обновления репозиториев apt

Установите Apache, MariaDB, PHP и необходимые расширения, а также UFW, Certbot и unzip:

sudo apt install apache2 mariadb-server php php-curl php-common php-json php-intl php-xml php-gd php-mysql php-imagick php-mbstring php-zip ufw certbot python3-certbot-apache unzip

Подтвердите установку клавишей Y и ENTER.

Установка зависимостей apt

После установки убедитесь, что службы Apache и MariaDB запущены и включены при старте системы:

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Проверка статуса apache2

Проверка MariaDB:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Проверка статуса mariadb

Если служба не запущена, перезапустите её и посмотрите журналы systemd: sudo systemctl restart имяслужбы и sudo journalctl -u имяслужбы.

Настройка UFW (брандмауэр)

Рекомендуется включить UFW и разрешить только необходимые сервисы: SSH и веб-трафик. Откройте профиль OpenSSH и WWW Full (80/443):

sudo ufw allow OpenSSH
sudo ufw allow 'WWW Full'

Включите UFW:

sudo ufw enable

Вы увидите подтверждение “Firewall is active and enabled on system startup”.

Включение UFW и правила

Проверьте статус:

sudo ufw status

Проверка правил UFW

Важно: если вы используете нестандартный SSH-порт, откройте именно его вместо профиля OpenSSH.

Конфигурация PHP

Joomla требует определённых параметров PHP. Файл конфигурации для Apache обычно находится в /etc/php/8.2/apache2/php.ini (версия PHP может отличаться).

Откройте файл:

sudo nano /etc/php/8.2/apache2/php.ini

Измените параметры на рекомендуемые (подберите memory_limit в зависимости от ОЗУ сервера):

memory_limit=512M
upload_max_filesize=64M
post_max_size=64M
max_execution_time=60

output_buffering = Off
extension=intl

Сохраните и перезапустите Apache:

sudo systemctl restart apache2

Примечание: версии PHP и пути могут отличаться; используйте установленную версию PHP на вашем сервере. Joomla 5 требует современную версию PHP — проверьте совместимость расширений.

Настройка MariaDB и создание базы данных

Запустите встроенный скрипт безопасности MariaDB, чтобы задать root-пароль и убрать тестовые данные:

sudo mariadb-secure-installation

Следуйте подсказкам: задайте пароль root, удалите анонимных пользователей, запретите удалённый вход для root и удалите тестовую базу.

Войдите в MariaDB с root:

sudo mariadb -u root -p

Создайте базу данных и пользователя для Joomla (замените p4ssword на сложный пароль):

CREATE DATABASE joomladb;
CREATE USER joomla@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL PRIVILEGES ON joomladb.* TO joomla@localhost;
FLUSH PRIVILEGES;

Создание базы данных и пользователя в MariaDB

Проверьте права:

SHOW GRANTS FOR joomla@localhost;

Проверка привилегий пользователя MariaDB

Завершите сессии командой quit.

Совет по безопасности: используйте уникальные, длинные пароли и храните их в менеджере паролей. По возможности ограничьте доступ к базе только с локального хоста.

Загрузка и подготовка исходников Joomla

Перейдите в /var/www и скачайте архив Joomla. Пример для версии 5.0.1:

cd /var/www/
wget https://downloads.joomla.org/cms/joomla5/5-0-1/Joomla_5-0-1-Stable-Full_Package.zip

Распакуйте в каталог joomla:

unzip Joomla_5-0-1-Stable-Full_Package.zip -d joomla

Установите собственника файлов в www-data (Apache):

sudo chown -R www-data:www-data /var/www/joomla

Важно: настройте права так, чтобы только веб-сервер мог записывать в требуемые папки (например, tmp, logs, configuration.php после установки). После установки ограничьте запись к configuration.php.

Настройка виртуального хоста Apache

Создайте файл виртуального хоста, например /etc/apache2/sites-available/joomla.conf:

sudo nano /etc/apache2/sites-available/joomla.conf

Вставьте конфигурацию (замените howtoforge.local на ваш домен):



    ServerAdmin [email protected]

    ServerName howtoforge.local
    DocumentRoot /var/www/joomla

    
         Options FollowSymlinks
         AllowOverride All
         Require all granted
    

    ErrorLog ${APACHE_LOG_DIR}/howtoforge.local_error.log
    CustomLog ${APACHE_LOG_DIR}/howtoforge.local_access.log combined

Активируйте сайт и проверьте синтаксис Apache:

sudo a2ensite joomla.conf
sudo apachectl configtest

Если видите “Syntax OK”, перезапустите Apache:

sudo systemctl restart apache2

Настройка виртуальных хостов Apache

Совет: включите модуль rewrite, если потребуется челая адресация: sudo a2enmod rewrite && sudo systemctl restart apache2.

Получение SSL с помощью Certbot и Let’s Encrypt

Certbot автоматизирует выпуск и интеграцию сертификатов для Apache.

Запустите certbot (замените email и домен):

sudo certbot --apache --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d howtoforge.local

Флаги:

  • –redirect: автоматический редирект HTTP -> HTTPS.
  • –hsts: включить HSTS-заголовок.
  • –staple-ocsp: добавить OCSP stapling.

После успешного выполнения сертификаты будут храниться в /etc/letsencrypt/live/yourdomain.com.

Важно: Certbot создаёт cron/task для автоматического обновления, но проверьте работу команды обновления вручную:

sudo certbot renew --dry-run

Примечание: Если ваш домен ещё не указывает на сервер, certbot не сможет выполнить проверку.

Установка Joomla через веб-инсталлятор

Откройте браузер и перейдите на https://ваш-домен/ — вы увидите веб-инсталлятор Joomla.

  1. Выберите язык и укажите название сайта.
  2. Нажмите “Setup Login Data” и задайте данные администратора (имя, логин, email, пароль).

Выбор языка установки Joomla

  1. На странице настройки базы укажите данные, которые создали ранее: имя базы joomladb, пользователя joomla, пароль и localhost как хост. Оставьте префикс таблиц по умолчанию или задайте свой.

Настройка учетной записи администратора

Настройка соединения с базой данных Joomla

Во время установки вы увидите прогресс установки компонентов и шаблона.

Процесс установки Joomla через веб-инсталлятор

После завершения появится сообщение “Congratulations! Your Joomla site is ready!”. Откройте сайт или админ-панель (/administrator).

Успешная установка Joomla

Пример главной страницы Joomla после установки

Страница входа администратора Joomla

Панель администратора Joomla

Что делать после установки — список задач

  • Удалите или заблокируйте установочный пакет, если инсталлятор предлагает это.
  • Ограничьте права на configuration.php: sudo chmod 640 configuration.php.
  • Включите автоматическое обновление или регулярно проверяйте обновления ядра, расширений и шаблонов.
  • Настройте систему резервного копирования (см. раздел Резервное копирование).

Резервное копирование и восстановление

Рекомендуемая схема:

  • Регулярный дамп базы данных (mysqldump) с ротацией и хранением вне сервера.
  • Резерв копии папки /var/www/joomla и media-папок.
  • Хранение резервов на удалённом хранилище (S3, другой сервер или облачная служба).

Пример команды экспорта базы:

mysqldump -u joomla -p joomladb > joomladb_$(date +%F).sql

Для восстановления:

mysql -u joomla -p joomladb < joomladb_2023-01-01.sql

Важно: проверьте восстановление на тестовом сервере.

Безопасность и усиление защиты

Рекомендации по повышению безопасности Joomla:

  • Регулярно обновляйте ядро, расширения и шаблоны.
  • Ограничьте права на файлы: файлы 644, каталоги 755 и configuration.php 640/600.
  • Установите Web Application Firewall (WAF) и/или модуль mod_security в Apache.
  • Отключите неиспользуемые расширения и модули Joomla.
  • Используйте сильные пароли и двухфакторную аутентификацию для админов.
  • Настройте регулярные сканирования безопасности и мониторинг логов.

Пример настройки прав для каталога сайта:

sudo find /var/www/joomla -type d -exec chmod 755 {} \;
sudo find /var/www/joomla -type f -exec chmod 644 {} \;
sudo chown -R www-data:www-data /var/www/joomla
sudo chmod 640 /var/www/joomla/configuration.php

Примечание: права могут потребовать корректировки в зависимости от используемых расширений, которые требуют записи в определённые каталоги.

Производительность и масштабирование (советы)

  • Используйте кеширование (Joomla имеет встроенные плагины кэша). Включите опкеширование PHP (OPcache).
  • Для больших сайтов рассмотрите использование CDN для статики.
  • При росте нагрузки — переход на выделенную базу или репликацию MariaDB.

Отладка и типичные ошибки (и как их решать)

  1. Ошибка подключения к базе данных:
    • Проверьте правильность имени базы/пользователя/пароля и хоста (обычно localhost).
    • Убедитесь, что пользователь имеет привилегии на базу.
  2. Белая страница (500) после установки:
    • Проверьте журналы Apache: sudo journalctl -u apache2 или /var/log/apache2/error.log.
    • Включите отображение ошибок в PHP на время отладки (display_errors = On) и затем выключите.
  3. SSL не выписывается Certbot:
    • Проверьте что домен указывает на сервер и открыт порт 80.
    • Убедитесь, что VirtualHost для 80 слушает на правильном ServerName.
  4. Проблемы с правами при установке расширений:
    • Проверьте права на каталоги tmp и logs.

Критерии приёмки

  • Сайт доступен по HTTPS и редиректит с HTTP.
  • Вход в панель администратора успешен под заданным админом.
  • Joomla установлена и отображает домашнюю страницу.
  • Резервное копирование базы и файлов выполнено и протестировано.
  • Фаервол UFW активен и разрешает только нужные порты.

Тесты и случаи приёмки

  • Тест 1: Открыть https://ваш-домен/ — ожидается код 200 и корректный контент.
  • Тест 2: Перейти на /administrator, выполнить логин — ожидается доступ к dashboard.
  • Тест 3: Выполнить sudo certbot renew –dry-run — ожидается успешный прогон.
  • Тест 4: Попробовать загрузить файл 30 МБ — проверка upload_max_filesize и post_max_size.

Резервная методология (mini-методология)

  1. Еженедельное полное резервирование базы и файлов.
  2. Хранение резервов 30 дней с ежедневной ротацией для критичных сайтов.
  3. Периодическое тестовое восстановление (раз в месяц).

Альтернативные подходы (когда инструкция не подходит)

  • Если вы предпочитаете Nginx, используйте LEMP-стек: замените Apache на Nginx и настройте php-fpm.
  • Для изолированных сред рассмотрите Docker-контейнеры или Kubernetes-подход со специализированными образами Joomla.
  • Для минимального администрирования используйте управляемый хостинг или PaaS с поддержкой Joomla.

Модель принятия решений (Mermaid)

flowchart TD
    A[Начало: есть Debian 12 сервер?] -->|Да| B{Домен доступен?}
    A -->|Нет| Z[Подготовьте сервер сначала]
    B -->|Да| C{Вы хотите упрощённое управление?}
    C -->|Да| D[Использовать управляемый хостинг]
    C -->|Нет| E[Следовать инструкциям LAMP + Joomla]
    E --> F[Установить Apache, MariaDB, PHP]
    F --> G[Настроить UFW и VirtualHost]
    G --> H[Получить SSL через Certbot]
    H --> I[Установить Joomla через веб-инсталлятор]
    I --> J[Тестирование и резервное копирование]

Роль-ориентированные чек-листы

  • Системный администратор:
    • Установить LAMP и Certbot.
    • Настроить UFW и VirtualHost.
    • Обеспечить резервное копирование и мониторинг.
  • Разработчик:
    • Настроить окружение разработки и права доступа.
    • Подготовить шаблоны и расширения, протестировать совместимость с PHP.
  • Контент-менеджер:
    • Проверить работу редактора контента.
    • Загрузить медиа и проверить отображение на фронтенде.

Миграция и совместимость

  • Перед обновлением с более ранних версий Joomla проверьте совместимость расширений и шаблонов.
  • Для миграции данных рекомендуется тестовая среда и пошаговое восстановление данных.

Частые ошибки и решения (коротко)

  • “Ошибка подключения к БД“: проверьте host, логин, пароль и привилегии.
  • “500 Internal Server Error”: проверьте логи Apache и права файлов.
  • “Certbot не может подтвердить домен”: проверьте DNS и доступность порта 80.

Резюме

  • Вы установили LAMP, настроили MariaDB и PHP, подготовили виртуальный хост Apache, включили UFW и получили SSL через Certbot.
  • Установили Joomla через веб-инсталлятор и проверили работоспособность.
  • Включили базовые меры безопасности и подготовили план резервного копирования.

Ключевые следующие шаги: подбор шаблона, настройка кэша, выбор расширений и периодическое тестовое восстановление бэкапов.

Источники и ссылки для дальнейшего чтения:

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро