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

Введение
Joomla — бесплатная open-source CMS на PHP с поддержкой MySQL, удобной админкой и расширяемой архитектурой. Эта пошаговая инструкция показывает, как развернуть Joomla 4 на Ubuntu 22.04 под Apache, подключить базу данных MySQL и установить бесплатный SSL от Let’s Encrypt.
Важно: используйте действительный домен, указывающий на IP сервера, и настройте root-пароль для MySQL или используйте пользователя с соответствующими правами.
Основные этапы установки
- Подготовка сервера и домена
- Установка LAMP (Apache, MySQL, PHP 8.1 и расширения)
- Создание базы данных и пользователя MySQL для Joomla
- Скачивание и распаковка пакета Joomla
- Создание виртуального хоста Apache
- Веб-установка Joomla через браузер
- Установка Let’s Encrypt SSL и настройка перенаправления на HTTPS
- Проверки, резервное копирование и безопасность
Требования (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 (замените на ваш домен). Установка проходит в несколько шагов:
- Выберите язык.

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

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

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

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

- После входа вы увидите панель управления 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
- Файлы сайта: создавайте архив /var/www/html/joomla (rsync или tar).
tar -czf /root/backup_joomla_$(date +%F).tar.gz /var/www/html/joomla- База данных:
mysqldump -u root -p joomladb > /root/joomladb_$(date +%F).sql- Проверяйте бэкапы регулярно и храните копии вне сервера (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 — напишите, и я подготовлю.
Источники и полезные ссылки
- Официальный сайт Joomla: https://www.joomla.org/
- Let’s Encrypt / Certbot: https://certbot.eff.org/
- Документация Apache: https://httpd.apache.org/docs/2.4/
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента