Установка Joomla 5 на AlmaLinux 9 с LAMP

О чём эта инструкция
Эта подробная инструкция подходит для системных администраторов и разработчиков, которым нужно развернуть Joomla на AlmaLinux 9. Показаны команды, конфигурации и проверочные шаги. Включены чек-листы, сценарии отката, советы по безопасности и отладке.
Важно: в статье предполагается, что вы используете Joomla 5.x. Проверьте страницу загрузки Joomla на предмет актуальной версии и совместимости с PHP.
Основные термины
- LAMP — набор: Linux, Apache (httpd), MariaDB/MySQL, PHP.
- VirtualHost — конфигурация виртуального хоста Apache для отдельного сайта.
- Certbot — клиент для получения SSL-сертификатов от Let’s Encrypt.
Требования перед началом
- Сервер AlmaLinux 9 с доступом по SSH.
- Неразовый пользователь с правами sudo.
- SELinux в статусе permissive (или понимание, как временно ослабить ограничения).
- Доменное имя, указывающее на IP сервера.
Краткая проверка:
- Свободного места на диске >= 2 ГБ для проекта и логов.
- Подключение к Интернету для загрузки пакетов и сертификатов.
Шаг 1 — Установка репозиториев и зависимостей
Добавим EPEL и Remi — они потребуются для PHP-пакетов и дополнительных утилит.
sudo dnf install epel-release dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
Сбросим модуль PHP и активируем версию Remi (в примере — Remi для PHP 8.2). Подтвердите вводом y, когда будет запрос.
sudo dnf module reset php
sudo dnf module enable php:remi-8.2
Установим стек LAMP и полезные утилиты (wget, unzip, nano):
sudo dnf install httpd mariadb-server php php-curl php-common php-json php-intl php-xml php-gd php-mysqlnd php-imagick php-mbstring php-zip wget unzip nano -yПодтвердите установку и импорт GPG-ключа при первом запросе.


Включим и запустим Apache и MariaDB:
sudo systemctl enable --now httpd
sudo systemctl enable --now mariadbПроверка статуса httpd и mariadb:
sudo systemctl status httpd
sudo systemctl status mariadb

Проверьте установленную версию PHP и список расширений:
php -v
php -mОжидаемый результат — PHP 8.x и нужные расширения для Joomla (gd, pdo_mysql, mbstring и т.д.).

Важно: если ваша Joomla-версия требует конкретной версии PHP, активируйте соответствующий модуль Remi (например remi-8.1 или remi-8.2).
Шаг 2 — Настройка PHP для Joomla
Откроем основной файл конфигурации PHP и внесём рекомендуемые изменения.
sudo nano /etc/php.iniПример настроек, адаптируйте memory_limit под доступную память сервера:
memory_limit = 512M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 60
output_buffering = OffСохраните изменения и перезапустите Apache:
sudo systemctl restart httpdСовет: при ограниченной памяти достаточно 256M, но для больших сайтов стоит 512M и выше.
Шаг 3 — Настройка MariaDB и создание базы данных
Защитим инсталляцию MariaDB и установим пароль root:
sudo mariadb-secure-installationОтветьте на запросы по безопасности (рекомендуется отвечать утвердительно для удаления анонимных пользователей, отключения удалённого root, удаления тестовой базы и перезагрузки привилегий).
Подключимся к MariaDB для создания БД и пользователя Joomla:
sudo mariadb -u root -pВнутри MariaDB выполните SQL:
CREATE DATABASE joomladb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'joomla'@'localhost' IDENTIFIED BY 'p4ssword';
GRANT ALL PRIVILEGES ON joomladb.* TO 'joomla'@'localhost';
FLUSH PRIVILEGES;
Проверьте привилегии:
SHOW GRANTS FOR 'joomla'@'localhost';
Завершите сессию MariaDB:
quit;Совет по безопасности: используйте сильный пароль и по возможности ограничьте доступ по сети.
Шаг 4 — Настройка firewalld
Откроем HTTP и HTTPS в брандмауэре:
sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-allПроверьте, что службы http и https присутствуют в списке.

Шаг 5 — Загрузка и развертывание Joomla
Перейдите в каталог веб-контента и скачайте архив Joomla (проверьте страницу загрузки для актуальной ссылки):
cd /var/www/
wget https://downloads.joomla.org/cms/joomla5/5-0-2/Joomla_5-0-2-Stable-Full_Package.zip
unzip Joomla_5-0-2-Stable-Full_Package.zip -d joomla
sudo chown -R apache:apache /var/www/joomla
sudo chmod -R u+rwX,g+rX,o-rwx /var/www/joomlaПрава и собственник важны: Apache (пользователь apache) должен иметь возможность читать и записывать файлы, необходимое для установки и обновлений.
Шаг 6 — Конфигурация виртуального хоста Apache
Создайте файл конфигурации виртуального хоста:
sudo nano /etc/httpd/conf.d/joomla.confВставьте пример и замените howtoforge.local на ваш домен:
ServerAdmin [email protected]
ServerName howtoforge.local
DocumentRoot /var/www/joomla
Options FollowSymlinks
AllowOverride All
Require all granted
ErrorLog /var/log/httpd/howtoforge.local_error.log
CustomLog /var/log/httpd/howtoforge.local_access.log combined
Проверьте синтаксис Apache и перезапустите сервис:
sudo apachectl configtest
sudo systemctl restart httpd
Совет: если вы будете использовать HTTPS, HTTP можно перенаправлять на HTTPS автоматически.
Шаг 7 — Защита сертификатом Let’s Encrypt (Certbot)
Установите certbot и плагин для Apache:
sudo dnf install certbot python3-certbot-apache -yЗапустите certbot и получите сертификат, замените email и домен:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d howtoforge.localСертификаты будут храниться в /etc/letsencrypt/live/your-domain/. Certbot автоматически настроит редиректы в Apache.
Автоматическое обновление сертификатов: certbot после установки добавляет systemd таймер. Проверьте работу:
sudo systemctl list-timers --all | grep certbot
sudo certbot renew --dry-runШаг 8 — Веб-инсталляция Joomla
Откройте браузер и перейдите по адресу http://howtoforge.local/ (или https://your-domain/). Следуйте мастеру установки:
- Выберите язык и укажите название сайта.
- Создайте администратора (email, username, password).
- Укажите данные базы (joomladb, joomla, p4ssword, localhost).
- Нажмите Установить и дождитесь завершения.



Во время установки появится прогресс:

По завершении вы увидите сообщение «Congratulations! Your Joomla site is ready» и ссылки «Open Site» и «Open Administrator».

Домашняя страница и страница входа администратора:


После входа вы попадёте в панель администратора:

Постустановочные задачи и рекомендации
- Удалите установочные файлы, если Joomla не сделает это автоматически.
- Настройте резервное копирование файлов и базы (см. раздел «Резервное копирование и откат»).
- Настройте автоматические обновления для компонента Joomla и расширений.
- Ограничьте доступ по SSH и следите за логами.
Резервное копирование и откат (runbook)
Минимальный план:
- Файлы сайта: /var/www/joomla
- База данных: дамп MariaDB
Простой сценарий резервного копирования (ежедневно):
# дамп БД
sudo mariadb -u root -p -e "mysqldump --single-transaction --routines --triggers joomladb" > /var/backups/joomladb-$(date +%F).sql
# архив файлов
sudo tar -czf /var/backups/joomla-files-$(date +%F).tar.gz -C /var/www joomlaОткат — восстановление:
# восстанавливаем файлы
sudo tar -xzf /var/backups/joomla-files-YYYY-MM-DD.tar.gz -C /var/www/
sudo chown -R apache:apache /var/www/joomla
# восстанавливаем БД
sudo mariadb -u root -p joomladb < /var/backups/joomladb-YYYY-MM-DD.sqlКритерии приёмки:
- Веб-интерфейс возвращает 200 OK для главной страницы.
- Вход в /administrator успешен.
- Сайт доступен по HTTPS.
- Резервная копия успешно создана и восстановление протестировано в тестовом окружении.
Отладка и частые ошибки
500 Internal Server Error после установки
- Проверьте логи Apache: /var/log/httpd/error_log.
- Проверьте права на /var/www/joomla и SELinux-контексты.
Ошибки подключения к базе
- Проверьте credentials и доступность MariaDB.
- Убедитесь, что пользователь joomla@localhost имеет права.
Ошибки с расширениями PHP
- Установите недостающие расширения (например php-gd, php-mbstring).
- Перезапустите Apache после установки расширений.
Проблемы с SELinux
- Если SELinux в Enforcing, назначьте правильные контексты:
sudo chcon -R -t httpd_sys_rw_content_t /var/www/joomla
sudo setsebool -P httpd_can_network_connect onЕсли вы временно ставили SELinux в permissive, верните в enforcing после настройки политики:
sudo setenforce 1Безопасность и жёсткие настройки
- Регулярно обновляйте ОС, PHP и расширения Joomla.
- Ограничьте доступ к /administrator по IP или через двухфакторную аутентификацию.
- Используйте файл .htaccess для защиты конфиденциальных директорий.
- Включите HSTS при настройке HTTPS (Certbot предлагает опцию –hsts).
- Контролируйте права на файлы: минимально необходимые для работы.
- Отключайте ненужные PHP-функции в php.ini (например exec, system) при необходимости.
Производительность и масштабирование
Небольшие рекомендации:
- Используйте кэширование в Joomla (встроенное или сторонние плагины).
- Настройте OPcache в PHP: включите opcache в php.ini для ускорения PHP.
- При высокой нагрузке рассмотрите выделение отдельного сервера для базы данных.
- Для большого трафика используйте балансировщик и CDN для статических ресурсов.
Пример минимальной конфигурации OPcache в /etc/php.d/10-opcache.ini:
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2Советы по совместимости и миграции
- Joomla 5 оптимизирована для PHP 8.x. Для успешной миграции с Joomla 3/4 проверьте совместимость расширений.
- Перед миграцией выполните полное резервное копирование и пробный апгрейд в отдельной среде.
- Некоторые устаревшие расширения могут не поддерживать новые версии Joomla, планируйте замену заранее.
Тесты и сценарии приёмки
Базовые тесты после установки:
- Открытие главной страницы (HTTP/HTTPS).
- Авторизация в /administrator.
- Создание и публикация простой статьи.
- Проверка загрузки и отображения изображений.
- Проверка работы поиска и плагинов кэша.
Критерии приёмки перечислены выше в разделе «Критерии приёмки».
Роли и чек-листы
Для системного администратора:
- Установить пакеты и репозитории.
- Настроить SELinux и firewall.
- Настроить резервные копии и мониторинг.
Для разработчика/контент-менеджера:
- Установить и настроить шаблон и расширения.
- Проверить совместимость расширений с PHP.
- Настроить бекапы контента.
Для администратора сайта:
- Настроить учётные записи и права доступа.
- Включить двухфакторную аутентификацию.
- Планировать обновления и тестирование перед применением.
Когда этот подход не подходит (контрпримеры)
- Если вам нужна лёгкая CMS с минимальной конфигурацией, возможно, лучше выбрать статический сайт или другой CMS.
- Для экстремально высоконагруженных проектов потребуется отдельная архитектура (кластер БД, кэширование на уровне сети, распределение файлов).
Часто встречающиеся команды (шпаргалка)
- Проверить статус сервисов:
sudo systemctl status httpd
sudo systemctl status mariadb- Перезапустить Apache:
sudo systemctl restart httpd- Проверить конфигурацию Apache:
sudo apachectl configtest- Автоматическое продление сертификата:
sudo certbot renew --dry-runКраткое резюме
- Установите репозитории EPEL и Remi; установите httpd, MariaDB и PHP с нужными расширениями.
- Настройте PHP (php.ini), защитите MariaDB и создайте базу данных для Joomla.
- Разверните файлы Joomla в /var/www/joomla, настройте виртуальный хост Apache.
- Защитите сайт HTTPS с помощью Certbot и настройте резервное копирование.
- Проведите тесты приёмки, настройте мониторинг и политику обновлений.
Важно: регулярно тестируйте восстановление из резервной копии и планируйте обновления расширений Joomla.
Быстрая памятка (SOP) — Быстрая последовательность команд
- Установка репозиториев и пакетов
sudo dnf install epel-release dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
sudo dnf module enable php:remi-8.2
sudo dnf install httpd mariadb-server php php-curl php-common php-json php-intl php-xml php-gd php-mysqlnd php-imagick php-mbstring php-zip wget unzip nano -y
sudo systemctl enable --now httpd
sudo systemctl enable --now mariadb- Безопасная настройка MariaDB и создание БД
sudo mariadb-secure-installation
sudo mariadb -u root -p
# внутри MariaDB выполнить SQL из раздела выше- Развёртывание Joomla
cd /var/www/
wget <последняя ссылка на Joomla .zip>
unzip Joomla_*.zip -d joomla
sudo chown -R apache:apache /var/www/joomla- Настройка VirtualHost и SSL через certbot
sudo nano /etc/httpd/conf.d/joomla.conf
sudo apachectl configtest
sudo systemctl restart httpd
sudo dnf install certbot python3-certbot-apache -y
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d your-domainЕсли нужны дополнительные шаблоны конфигураций виртуальных хостов, автоматизация развертывания (Ansible), или пример Playbook для CI/CD — могу добавить примеры и готовые конфигурации.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента