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

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

7 min read DevOps Обновлено 28 Nov 2025
Joomla на AlmaLinux 9 — установка и настройка
Joomla на AlmaLinux 9 — установка и настройка

Иллюстрация установки Joomla и 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

Добавление репозиториев EPEL и Remi

Сбросим модуль PHP и активируем версию Remi (в примере — Remi для PHP 8.2). Подтвердите вводом y, когда будет запрос.

sudo dnf module reset php
sudo dnf module enable php:remi-8.2

Активация модуля PHP Remi

Установим стек 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-ключа при первом запросе.

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

Подтверждение GPG-ключа

Включим и запустим Apache и MariaDB:

sudo systemctl enable --now httpd
sudo systemctl enable --now mariadb

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

sudo systemctl status httpd
sudo systemctl status mariadb

Статус Apache после запуска

Статус MariaDB после запуска

Проверьте установленную версию PHP и список расширений:

php -v
php -m

Ожидаемый результат — PHP 8.x и нужные расширения для Joomla (gd, pdo_mysql, mbstring и т.д.).

Проверка версии PHP и расширений

Важно: если ваша 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;

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

Проверьте привилегии:

SHOW GRANTS FOR 'joomla'@'localhost';

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

Завершите сессию 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 присутствуют в списке.

Открытие HTTP/HTTPS в firewalld


Шаг 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

Проверка и перезапуск Apache после добавления VirtualHost

Совет: если вы будете использовать 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/). Следуйте мастеру установки:

  1. Выберите язык и укажите название сайта.
  2. Создайте администратора (email, username, password).
  3. Укажите данные базы (joomladb, joomla, p4ssword, localhost).
  4. Нажмите Установить и дождитесь завершения.

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

Создание администратора Joomla

Указание данных базы данных

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

Процесс установки Joomla

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

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

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

Главная страница Joomla по умолчанию

Страница входа в администраторскую часть Joomla

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

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


Постустановочные задачи и рекомендации

  1. Удалите установочные файлы, если Joomla не сделает это автоматически.
  2. Настройте резервное копирование файлов и базы (см. раздел «Резервное копирование и откат»).
  3. Настройте автоматические обновления для компонента Joomla и расширений.
  4. Ограничьте доступ по 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.
  • Резервная копия успешно создана и восстановление протестировано в тестовом окружении.

Отладка и частые ошибки

  1. 500 Internal Server Error после установки

    • Проверьте логи Apache: /var/log/httpd/error_log.
    • Проверьте права на /var/www/joomla и SELinux-контексты.
  2. Ошибки подключения к базе

    • Проверьте credentials и доступность MariaDB.
    • Убедитесь, что пользователь joomla@localhost имеет права.
  3. Ошибки с расширениями PHP

    • Установите недостающие расширения (например php-gd, php-mbstring).
    • Перезапустите Apache после установки расширений.
  4. Проблемы с 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) — Быстрая последовательность команд

  1. Установка репозиториев и пакетов
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
  1. Безопасная настройка MariaDB и создание БД
sudo mariadb-secure-installation
sudo mariadb -u root -p
# внутри MariaDB выполнить SQL из раздела выше
  1. Развёртывание Joomla
cd /var/www/
wget <последняя ссылка на Joomla .zip>
unzip Joomla_*.zip -d joomla
sudo chown -R apache:apache /var/www/joomla
  1. Настройка 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 — могу добавить примеры и готовые конфигурации.

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