Установка Joomla CMS с Apache и Let's Encrypt на Alma Linux 8
Зачем это нужно
Joomla — бесплатная и популярная система управления контентом (CMS). Она позволяет быстро запустить сайт или блог без навыков программирования. В этом руководстве шаг за шагом описано, как развернуть Joomla на Alma Linux 8 с Apache и обеспечить HTTPS через Let’s Encrypt.
Содержание
- Предварительные требования
- Установка LAMP (Apache, PHP, MariaDB)
- Настройка PHP
- Создание базы данных MariaDB
- Загрузка и установка файлов Joomla
- Конфигурация Apache (виртуальный хост)
- Настройка firewall
- Веб-мастер установки Joomla
- Установка и настройка Let’s Encrypt (Certbot)
- Технические советы: отладка и безопасность
- Альтернативы и когда этот подход не подходит
- Чеклисты для ролей
- Краткое резюме
Предварительные требования
- Сервер с Alma Linux 8 (root-доступ).
- Действующий домен, указывающий на IP вашего сервера (пример: joomla.example.com).
- Настроен root-пароль или доступ по sudo для управления системой.
Установка LAMP-сервера
Joomla работает на веб-сервере Apache, написана на PHP и использует MariaDB как СУБД. Установите необходимые пакеты:
dnf install httpd @mariadb php php-curl php-xml php-zip php-mysqlnd php-intl php-gd php-json php-ldap php-mbstring php-opcache unzip curl wget -yПосле установки отредактируйте главный файл конфигурации PHP:
nano /etc/php.iniИзмените или добавьте следующие параметры:
memory_limit = 256M
output_buffering = Off
max_execution_time = 300
date.timezone = UTCСохраните файл и запустите/включите службы Apache и MariaDB:
systemctl start httpd mariadb
systemctl enable httpd mariadbВажное: задавайте корректную временную зону (например, Europe/Moscow) в date.timezone, если нужно локальное время.
Конфигурация MariaDB (создание базы и пользователя)
Подключитесь к shell MariaDB:
mysqlВнутри MariaDB выполните:
MariaDB [(none)]> CREATE DATABASE joomla;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON joomla.* TO 'joomla'@'localhost' IDENTIFIED BY "securepassword";
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;Замените securepassword на надёжный пароль. Запишите доступы — они понадобятся на этапе установки через веб.
Загрузка Joomla CMS
На момент написания примера в исходнике использовалась версия 4.1.2. Скачивание выполняется так:
wget https://downloads.joomla.org/cms/joomla4/4-1-2/Joomla_4-1-2-Stable-Full_Package.zip?format=zip -O joomla.zipРаспакуйте файлы в корень веб-сайта (пример: /var/www/html/joomla):
unzip joomla.zip -d /var/www/html/joomlaНазначьте правильные владельца и права:
chown -R apache:apache /var/www/html/joomla/
chmod -R 775 /var/www/html/joomla/Пояснение: пользователь apache — это системный пользователь httpd в RHEL-подобных системах. Это обеспечивает корректный доступ веб-сервера к файлам.
Конфигурация Apache для Joomla
Создайте виртуальный хост:
nano /etc/httpd/conf.d/joomla.confДобавьте конфигурацию (отредактируйте ServerAdmin и ServerName под ваш домен):
ServerAdmin [email protected]
DocumentRoot "/var/www/html/joomla"
ServerName joomla.example.com
ErrorLog "/var/log/httpd/example.com-error_log"
CustomLog "/var/log/httpd/example.com-access_log" combined
DirectoryIndex index.html index.php
Options FollowSymLinks
AllowOverride All
Require all granted
Сохраните и перезапустите Apache:
systemctl restart httpdПроверка статуса:
systemctl status httpdВ выводе вы увидите состояние службы и PID процессов Apache.
Настройка firewall
Разрешите трафик HTTP/HTTPS:
firewall-cmd --add-service=http --zone=public --permanent
firewall-cmd --add-service=https --zone=public --permanent
firewall-cmd --reloadДоступ к веб-мастеру установки Joomla
Откройте браузер по адресу http://joomla.example.com и следуйте пошаговому мастеру установки:
![/files/d4a6a4e8-d90d-4177-9ed0-447b31510f4e.png]
Alt: Скриншот стартовой страницы установки Joomla с логотипом и выбором языка.
- Выберите язык и введите название сайта.
- На экране «Настройка входа» создайте администратора — логин и пароль.
- На экране подключения к базе укажите данные, созданные ранее (имя БД joomla, пользователь joomla и его пароль).
- Нажмите «Установить Joomla» и дождитесь завершения.
![/files/46aaa4d8-5cc5-4b0b-9e68-4e451f23953a.png]
Alt: Скриншот выбора языка и ввода имени сайта в мастере установки Joomla.
![/files/ffb51078-7b05-4008-a594-cd0c0294c7de.png]
Alt: Скриншот экрана создания учетной записи администратора в мастере Joomla.
![/files/54ddb98e-1cff-4bed-af05-537b774f662e.png]
Alt: Скриншот ввода параметров подключения к базе данных в мастере Joomla.
После успешной установки откройте панель администратора:
![/files/09e66778-932c-4c6d-81bc-0cd2ffffd4c0.png]
Alt: Скриншот экрана успешной установки Joomla с кнопкой для перехода в панель администратора.
![/files/a5d456a7-4c68-4030-9a13-185424f2db16.png]
Alt: Скриншот страницы входа в административную панель Joomla.
![/files/80acd6fc-d289-42e8-b639-01b37556ab7d.png]
Alt: Скриншот панели управления (Dashboard) Joomla после успешного входа.
Установка Let’s Encrypt SSL (Certbot)
Установите EPEL и Certbot для Apache:
dnf install epel-release -ydnf install certbot python3-certbot-apache -yЗапустите Certbot для получения сертификата для вашего домена:
certbot --apache -d joomla.example.comВо время процесса вас попросят указать email и принять условия обслуживания. В примере будет создан и установлен сертификат, и Certbot автоматически добавит перенаправление HTTP→HTTPS в конфигурацию Apache.
Пример вывода Certbot (сокращённо):
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): [email protected]
Do you agree? (Y)es/(N)o: Y
Requesting a certificate for joomla.example.com
Performing challenges:
http-01 challenge for joomla.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/httpd/conf.d/joomla.conf
Redirecting all traffic on port 80 to ssl in /etc/httpd/conf.d/joomla.conf
Congratulations! You have successfully enabled https://joomla.example.comВажные заметки от Certbot (пример):
- Сертификат сохранён в /etc/letsencrypt/live/joomla.example.com/fullchain.pem
- Ключ: /etc/letsencrypt/live/joomla.example.com/privkey.pem
- Срок действия сертификата показан в выводе (в примере: 09.07.2022).
Рекомендация: Certbot автоматически создаёт задачу для обновления сертификатов. Вы можете вручную протестировать обновление:
certbot renew --dry-runОтладка и часто встречаемые проблемы
- Ошибка 500 после установки: проверьте /var/log/httpd/error_log и права доступа к файлам Joomla.
- Неверное подключение к базе: убедитесь, что имя БД, пользователь и пароль совпадают, и что MariaDB слушает локальные соединения.
- Перенаправление на HTTP после установки сертификата: перезапустите Apache и очистите кэш браузера.
- Certbot не может пройти проверку HTTP-01: проверьте, что DNS указывает на сервер и что firewall разрешает порт 80.
Краткий отладочный план:
- systemctl status httpd mariadb
- tail -n 100 /var/log/httpd/error_log
- tail -n 100 /var/log/letsencrypt/letsencrypt.log
- Проверить DNS командой: dig +short joomla.example.com
Безопасность и hardening (рекомендации)
- Ограничьте доступ к панели администратора: используйте двухфакторную аутентификацию и/или IP-фильтры.
- Регулярно обновляйте Joomla, расширения и шаблоны.
- Настройте резервное копирование файлов и базы данных (периодические снимки и off-site копии).
- Ограничьте права на файлы: избегайте 777; используйте 775/750 и владельца apache.
- Включите автоматическое обновление сертификатов через systemd-timer/cron (certbot обычно создаёт задачу).
- Используйте модуль ModSecurity и правила WAF при высоких требованиях к безопасности.
Альтернативные подходы
- Nginx + PHP-FPM вместо Apache: лучше для высоконагруженных сайтов и меньшего потребления памяти.
- Docker-контейнеры: упрощают переносимость и управление зависимостями (официальные/сообщественные образы Joomla + MariaDB).
- Управляемый хостинг для Joomla: если вы не хотите администрировать сервер, можно выбрать провайдера с предустановленной CMS и бэкапами.
Когда этот подход не подходит:
- Если у вас нет опыта системного администрирования и вы не хотите управлять обновлениями и бэкапами — рассмотрите управляемый хостинг.
- Для очень высоких нагрузок лучше использовать масштабируемую инфраструктуру (балансировщики, кэширование и т.д.).
Чеклисты по ролям
Системный администратор:
- Проверил DNS и firewall.
- Установил и запустил httpd и mariadb.
- Настроил права и владельца для /var/www/html/joomla.
- Получил SSL-сертификат и проверил автоматическое обновление.
Разработчик / интегратор:
- Подключился к административной панели.
- Установил необходимые расширения и шаблон.
- Проверил работу сайта в HTTPS и корректность ссылок.
Оператор безопасности:
- Включил двухфакторную аутентификацию для админов.
- Настроил резервное копирование и восстановление.
- Внёс в мониторинг метрики: uptime, сертификат, свободное место на диске.
Мини-методология развертывания (шаги)
- Подготовка сервера и DNS.
- Установка LAMP и базовой конфигурации PHP.
- Создание БД и пользователя.
- Загрузка и размещение файлов Joomla.
- Настройка Apache и firewall.
- Запуск веб-мастера Joomla.
- Установка SSL и тесты.
- Бэкап и мониторинг.
Факт-бокс (ключевые числа и команды)
- PHP memory_limit: 256M (рекомендуется для большинства сайтов).
- max_execution_time: 300 секунд.
- Права на директорию Joomla: 775.
- Путь сертификатов Let’s Encrypt: /etc/letsencrypt/live/<ваш_домен>/
1‑строчный глоссарий
- LAMP: стек Linux + Apache + MariaDB (MySQL) + PHP.
- Certbot: клиент Let’s Encrypt для автоматического получения и установки SSL.
Критерии приёмки
- Сайт доступен по HTTPS: https://joomla.example.com
- Административная панель доступна и вход работает.
- Автоматическое обновление сертификата прошло dry-run certbot renew –dry-run успешно.
- Настроены регулярные бэкапы базы и файлов.
Краткий план отката (если установка пошла не так)
- Восстановить файлы сайта из бэкапа.
- Восстановить дамп базы данных.
- Откатить изменения в конфигурации /etc/httpd/conf.d/joomla.conf (например, заменить на предыдущую версию).
- Перезапустить службы: systemctl restart httpd mariadb.
Заключение
Поздравляем — вы установили Joomla на Alma Linux 8 с Apache и защитили сайт сертификатом Let’s Encrypt. Теперь можно настраивать плагины, шаблоны и наполнять сайт контентом. Если возникнут вопросы по конкретным ошибкам или расширениям, опишите проблему — я помогу с диагностикой.
Ресурсы для продолжения: официальная документация Joomla, руководство Certbot и документация Alma Linux.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента