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

Установка Joomla 4 на Ubuntu 22.04 с Apache и Let's Encrypt SSL

• 5 min read • CMS • Обновлено 22 Nov 2025
Установка Joomla 4 на Ubuntu 22.04 с Apache и SSL
Установка Joomla 4 на Ubuntu 22.04 с Apache и SSL

Скриншот: логотип и интерфейс Joomla

Введение

Joomla — бесплатная open-source CMS на PHP с поддержкой MySQL, удобной админкой и расширяемой архитектурой. Эта пошаговая инструкция показывает, как развернуть Joomla 4 на Ubuntu 22.04 под Apache, подключить базу данных MySQL и установить бесплатный SSL от Let’s Encrypt.

Важно: используйте действительный домен, указывающий на IP сервера, и настройте root-пароль для MySQL или используйте пользователя с соответствующими правами.

Основные этапы установки

  1. Подготовка сервера и домена
  2. Установка LAMP (Apache, MySQL, PHP 8.1 и расширения)
  3. Создание базы данных и пользователя MySQL для Joomla
  4. Скачивание и распаковка пакета Joomla
  5. Создание виртуального хоста Apache
  6. Веб-установка Joomla через браузер
  7. Установка Let’s Encrypt SSL и настройка перенаправления на HTTPS
  8. Проверки, резервное копирование и безопасность

Требования (Prerequisites)

  • Сервер с Ubuntu 22.04 LTS.
  • Доменное имя, указывающее на IP сервера (A-запись).
  • Доступ root или пользователь с правами sudo.

Установка LAMP-сервера

Установите Apache, MySQL и PHP 8.1 с набором расширений, необходимых для Joomla:

apt install apache2 mysql-server php8.1 libapache2-mod-php8.1 php8.1-dev php8.1-bcmath php8.1-intl php8.1-soap php8.1-zip php8.1-curl php8.1-mbstring php8.1-mysql php8.1-gd php8.1-xml unzip -y

Проверьте версию PHP:

php -v

Ожидаемый вывод (пример):

PHP 8.1.2 (cli) (built: Apr  7 2022 17:46:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

Примечание: если вы используете менеджер пакетов с другим зеркалом или PPA, убедитесь, что PHP 8.1 доступен и совместим с вашими приложениями.

Создание базы данных MySQL для Joomla

Подключитесь к MySQL и создайте базу данных и пользователя для Joomla:

mysql

Внутри MySQL выполните:

mysql> CREATE DATABASE joomladb;  
mysql> CREATE USER 'joomlauser'@'localhost' IDENTIFIED BY 'securepassword';
mysql> GRANT ALL ON joomladb.* TO 'joomlauser'@'localhost';
mysql> FLUSH PRIVILEGES;  
mysql> EXIT;

Советы:

  • Замените securepassword на надёжный пароль (строка не менее 12 символов).
  • Для production-сайта рассмотрите отдельную схему резервирования и менеджер секретов.

Скачивание и распаковка Joomla

В момент написания исходного руководства использовалась версия 4.2.1 (пример команды в исходнике указывает на Joomla_4-1-2). Скачайте официальный пакет:

wget https://downloads.joomla.org/cms/joomla4/4-1-2/Joomla_4-1-2-Stable-Full_Package.zip

Распакуйте в веб-корень Apache:

unzip Joomla_4-1-2-Stable-Full_Package.zip -d /var/www/html/joomla

Установите владельца и права доступа:

chown -R www-data:www-data /var/www/html/joomla/  
chmod -R 755 /var/www/html/joomla/

Важно: правильные права защищают от проблем с записью файлов и конфигураций.

Создание виртуального хоста Apache

Создайте файл конфигурации виртуального хоста:

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

Добавьте конфигурацию (замените joomla.example.com на ваш домен):



ServerAdmin [email protected]

ServerName joomla.example.com
DocumentRoot /var/www/html/joomla


        Options FollowSymlinks
        AllowOverride All
        Require all granted


ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined

Активируйте сайт и перезапустите Apache:

a2ensite joomla.conf
systemctl restart apache2

Проверка статуса сервиса:

systemctl status apache2

Ожидаемый фрагмент вывода служит подтверждением того, что Apache запущен.

Веб‑установка Joomla через браузер

Откройте в браузере домен http://joomla.example.com (замените на ваш домен). Установка проходит в несколько шагов:

  1. Выберите язык.

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

  1. Укажите имя сайта и перейдите к настройке учётной записи администратора.

Создание учётной записи администратора

  1. Введите параметры базы данных (имя, пользователя, пароль, хост).

Конфигурация базы данных

  1. Нажмите Install и дождитесь окончания установки.

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

  1. Откройте панель администратора и войдите.

Вход в панель администратора

  1. После входа вы увидите панель управления Joomla.

Панель управления Joomla

Защита сайта: Let’s Encrypt SSL

Установите certbot и плагин для Apache:

apt-get install python3-certbot-apache -y

Запустите certbot для вашего домена:

certbot --apache -d joomla.example.com

Во время выполнения вас попросят ввести email и принять условия обслуживания. В конце certbot предложит перенаправление HTTP→HTTPS — для новых сайтов обычно рекомендуется выбрать перенаправление.

Пример вывода certbot и важные заметки сохранены в логе /var/log/letsencrypt/letsencrypt.log. Файлы сертификата хранятся в /etc/letsencrypt/live/joomla.example.com/.

После успешной установки откройте https://joomla.example.com для проверки.

Важно: автоматически сертификаты Let’s Encrypt действуют 90 дней. Настройте автоматическое обновление (см. далее).

Настройка автоматического обновления сертификата (cron)

Certbot обычно добавляет systemd таймер или cron. Если нужно вручную — добавьте одноразовый скрипт в /etc/cron.d:

# Ежедневная попытка обновления сертификатов
0 3 * * * root certbot renew --quiet --deploy-hook "systemctl reload apache2"

Проверьте работу вручную:

certbot renew --dry-run

Проверка и отладка — типичные проблемы и решения

  • Apache не запускается: проверьте синтаксис конфигурации apachectl configtest и логи в /var/log/apache2/error.log.
  • 403 Forbidden при обращении к /joomla: проверьте права владельца (www-data) и директиву AllowOverride All.
  • Ошибки подключения к БД: убедитесь, что host — локальный (localhost), пользователь и пароль правдивы, и что MySQL слушает ожидания.
  • Certbot не может верифицировать домен: проверьте DNS A-запись и отсутствие блокировки порта 80/443 (файрвол, провайдер).

Резервное копирование и восстановление — мини‑SOP

  1. Файлы сайта: создавайте архив /var/www/html/joomla (rsync или tar).
tar -czf /root/backup_joomla_$(date +%F).tar.gz /var/www/html/joomla
  1. База данных:
mysqldump -u root -p joomladb > /root/joomladb_$(date +%F).sql
  1. Проверяйте бэкапы регулярно и храните копии вне сервера (S3, другой хост).

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

  • Сайт доступен по HTTPS и перенаправляет HTTP → HTTPS.
  • Админ-панель работает, можно войти с учётными данными администратора.
  • Бэкап Файлов и дамп БД созданы и восстановимы.

Рекомендации по безопасности и твики

  • Отключите показ версий в заголовках сервера (ServerSignature Off, ServerTokens Prod).
  • Ограничьте доступ к /administrator по IP или настройте двухфакторную аутентификацию для админов.
  • Регулярно обновляйте Joomla и расширения через админку.
  • Настройте WAF/модуль ModSecurity и лимит подключений в Apache.

Альтернативные подходы

  • Docker: используйте официальные или готовые образы Docker для изоляции окружения и упрощённого деплоя.
  • Nginx вместо Apache: более высокая производительность в некоторых сценариях, но потребует настройки PHP-FPM и правил перезаписи.

Роли и чеклист для запуска производства

  • Системный администратор:
    • Установил LAMP и certbot.
    • Настроил бэкап и автоматическое обновление certbot.
  • Разработчик/контент-менеджер:
    • Проверил шаблоны, расширения и права на загрузку файлов.
  • Безопасность/DevOps:
    • Настроил WAF, firewall (ufw), и мониторинг логов.

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

  • DNS указывает на сервер
  • HTTPS работает и перенаправление настроено
  • Бэкап файлов и БД протестирован
  • Права доступа и владельцы файлов настроены
  • Обновления Joomla и расширений установлены

Краткая галерея крайних случаев

  • Если вы переносите сайт со старой версии Joomla, сначала проверьте совместимость расширений.
  • При восстановлении БД из дампа следите за кодировкой (utf8mb4 рекомендуется).

Однострочный глоссарий

  • LAMP — стек: Linux, Apache, MySQL, PHP.
  • Certbot — клиент для автоматической работы с Let’s Encrypt.
  • VirtualHost — конфигурация Apache для отдельного домена.

Заключение

Поздравляем — вы развернули Joomla 4 на Ubuntu 22.04, настроили виртуальный хост Apache и защитили сайт с помощью Let’s Encrypt. Дальше: настройка резервного копирования, мониторинга и регулярного обновления компонентов.

Если нужны примеры автоматизации, Docker‑файлы или шаблоны конфигураций для Nginx — напишите, и я подготовлю.

Источники и полезные ссылки

Поделиться: 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 быстро