Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
Публикации и блог

Joomla

Классическая CMS на PHP, у которой многоязычность, права доступа и рабочий процесс публикации лежат в ядре, а не в плагинах. Поставили 6.1.3 официальным образом на чистую машину, померили расход и нашли то, о чем не пишет документация: каталог расширений Joomla с российского сервера недоступен.

Сентябрь 2026 ~10 минут чтения Fatmetal Team
CMS и сайты Лицензия: GPL-2.0+ Статус: запущен у нас, 6.1.3

Вердикт

Подходит
  • у кого уже есть сайт на Joomla: 13 октября 2026 у линии 5.x кончаются багфиксы
  • многоязычному корпоративному сайту с ролями и уровнями доступа
  • студиям: чистый стенд за пять минут, чтобы проверить обновление до 6.x
  • тем, кто не хочет платить за лицензию CMS и продлевать ее каждый год
Не подходит
  • новому блогу, лендингу или магазину с нуля: там WordPress или конструктор
  • если нужно быстро найти подрядчика: доля рынка падает 11 лет подряд
  • если расширения планируется ставить из каталога Joomla прямо на сервере
  • headless и API-first сценариям: это другой класс продуктов
Рекомендуем: CPU2-RAM4-DISK50 RAM в простое: 141 МиБ Контейнеров: 2 Установка с нуля: ~5 минут Ответ через TLS: 199 мс Сложность: low
Суть

Что это и кому сегодня нужно

Серверная CMS на PHP: сайт, портал, каталог. Живет с 2005 года, принадлежит некоммерческому фонду.

Joomla ставится на обычный LAMP, хранит контент в MySQL, MariaDB или PostgreSQL и отдает страницы сервером. Не headless, не генератор статики, не конструктор.

Правами на код владеет Open Source Matters - американская некоммерческая организация. Платных редакций нет вовсе: продавать вам про-версию структурно некому, и сменить лицензию на BSL тоже некому.

Начнем с неприятного, потому что прятать это бессмысленно. Доля Joomla на рынке CMS падает одиннадцать лет подряд.

Доля рынка CMS201520192022сентябрь 2026
WordPress60.7%59.7%65.2%58.7%
Joomla8.6%5.4%2.6%1.6%
Drupal5.1%3.5%2.0%0.9%
Wix0.3%1.8%2.9%6.2%

Читается это не как «Joomla провалилась», а как «просела вся категория». Drupal упал в те же пять раз, долю забрали конструкторы. Joomla при этом остается второй среди self-hosted CMS, впереди Drupal.

Полтора процента рынка - это по-прежнему миллионы живых сайтов. Вопрос у их владельцев сейчас не «выбрать ли Joomla», а «что делать с тем, что уже стоит».

i

Витрине проекта не верьте. Страница возможностей на joomla.org до сих пор обещает «более 6% рынка CMS» и «более 8000 расширений». Реальность - 1.6% и 4901 расширение по счетчику самого каталога. Достоверны роадмап и руководство, а не главная страница.

Ядро

Что здесь есть без единого плагина

Главная причина смотреть на CMS с долей в полтора процента.

Joomla - не бедный WordPress, а другой размен: богаче ядро, беднее экосистема. Сравнение по тому, что работает сразу после установки.

ВозможностьJoomla 6WordPress
Многоязычный контентв ядре, 70+ языковых пакетов, языковые связкиплагином, WPML платный
Права доступа (ACL)в ядре: группы и уровни доступав ядре только роли
Рабочий процесс публикациив ядре, с 6.1 визуальный редактор схемыплагином
Двухфакторная аутентификацияв ядреплагином
Переопределение шаблоновв ядре: template и language overridesтемы-потомки
Расширений в каталоге4901десятки тысяч

Для сайта-визитки этот размен проигрышный. Для многоязычного корпоративного сайта с разграничением доступа - выигрышный, и именно за такой профиль обычно платят лицензией.

Уровни доступа Joomla 6.1.3: Public, Guest, Registered, Special, Super Users
Уровни доступа из коробки, без единого расширения. Кликните, чтобы открыть на весь экран.

Из нового в 6.1: CAPTCHA на доказательстве работы прямо в ядре - без аккаунта и обращений к Google, визуальный редактор процесса публикации, медиа-поля для аудио и видео, история версий для модулей.

Версии

Две линии и дата 13 октября

Joomla ведет две поддерживаемые ветки сразу и выпускает патчи парами в один день.

ЛинияТекущая версияБагфиксы доТолько безопасность до
5.x5.4.813 октября 202612 октября 2027
6.x6.1.317 октября 202816 октября 2029

Если сайт на 5.x, обычные исправления для него заканчиваются в октябре 2026. Дальше год только заплатки безопасности - и все.

Автообновление работает внутри линии: патчи и миноры с 5.4 и 6.0 ставятся сами. Переход 5.4 на 6.x автоматически не делается, только вручную из админки или внешним инструментом.

i

Правильный путь на 6.x лежит через 5.4. Роадмап проекта прямо называет 5.4 релизом обратных переносов API из шестой ветки - «чтобы облегчить переход». Сначала доезжаете до 5.4, потом обновляетесь на 6.

Ручной мажорный переход - это ровно тот случай, когда нужна копия сайта. Никто в здравом уме не жмет «обновить» на боевом сайте клиента, а чистый стенд поднимается за пять минут.

Цифры

Что измерили на стенде

Ubuntu 24.04, 2 vCPU / 4 ГБ, Docker 29.8.1. Joomla 6.1.3 официальным образом, база MariaDB 11, наружу Caddy с TLS.

ПоказательЗначение
Память в простое141 МиБ (Joomla 33 + MariaDB 108)
После прогрева запросами154 МиБ
Хост целиком721 МБ из 3915
Образы1.62 ГБ (Joomla 1.16 + MariaDB 0.46)
Занято на диске4.3 ГБ из 48
Томасайт 125 МБ, база 171 МБ
Скачивание образов117 с
Старт до первого HTTP 20073 с
Итого с чистой машины~5 минут
Ответ главной через TLS199 мс (медиана из 10)
Ответ админки через TLS170 мс
Ответ локально, без TLS67 мс

Требований к памяти и диску проект не публикует вообще - только версии PHP и СУБД. Поэтому цифры выше единственные, на что тут можно опереться.

Контейнер Joomla растет от использования: 33 МиБ сразу после старта и 45 МиБ после шестидесяти запросов. Для сравнения, WordPress на том же тарифе и той же схеме держался в 198 МиБ - Joomla немного легче ближайшего аналога.

База

MariaDB вместо MySQL экономит больше, чем весит сам продукт

Пример в документации официального образа пинит MySQL. Мы померили обе базы на одной машине.

ПоказательMySQL 8.4MariaDB 11
Память базы в простое482 МиБ108 МиБ
Размер образа базы1.12 ГБ458 МБ
От запуска до HTTP 200188 с73 с
Ответ главной через TLS260 мс199 мс

374 МиБ разницы - это больше, чем занимает сама Joomla. Выбор базы здесь важнее всех остальных настроек вместе взятых.

Оговорка про версии. MySQL 8.0 из примера апстрима - это объявленный Joomla минимум (8.0.13), а не рекомендация. MariaDB 11 выше минимума 10.4 и берет рекомендованный диапазон с запасом.

Развертывание

Как ставится на самом деле

Официальный образ Joomla - Docker Official Image. Два контейнера, внешних зависимостей нет.

В маркетплейсе Fatmetal

Не хотите ставить руками?

Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за несколько минут получаете рабочий сайт, домен, валидный TLS и заведенного администратора.

Рекомендуемая конфигурация:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe от 450 ₽/мес

В маркетплейс ->
  1. Поставить Docker

    sudo apt-get install -y docker-ce docker-ce-cli containerd.io \
      docker-buildx-plugin docker-compose-plugin

    Из официального репозитория docker.com. Заняло 86 секунд.

  2. Описать два сервиса

    services:
      db:
        image: mariadb:11
        environment:
          MARIADB_DATABASE: joomla
          MARIADB_USER: joomla
          MARIADB_PASSWORD: "$(openssl rand -hex 16)"
          MARIADB_RANDOM_ROOT_PASSWORD: "yes"
        volumes: [db_data:/var/lib/mysql]
      joomla:
        image: joomla:6.1.3-php8.4-apache
        depends_on: [db]
        ports: ["127.0.0.1:8080:80"]
        volumes: [joomla_data:/var/www/html]

    Тег закрепляем, не latest. Порт только на петлю: наружу через прокси с TLS.

  3. Задать переменные автоустановки

    JOOMLA_DB_HOST: db
    JOOMLA_DB_TYPE: mysqli
    JOOMLA_SITE_NAME: "Мой сайт"
    JOOMLA_ADMIN_USERNAME: admin
    JOOMLA_ADMIN_PASSWORD: <свой пароль>
    JOOMLA_ADMIN_EMAIL: you@example.com

    Это главное удобство образа: мастер установки в браузере проходить не нужно. Каталог installation образ удаляет сам - классической дыры забытого сайта не остается.

  4. Запустить и подождать четыре минуты

    docker compose pull
    docker compose up -d

    После up -d порт 73 секунды отдает ноль: образ разворачивает ядро в том и ставит базу. Это не зависание.

  5. Включить человеческие адреса

    docker compose exec joomla \
      php cli/joomla.php config:set sef_rewrite=true

    Файл .htaccess образ создает сам и mod_rewrite включает, но из коробки адреса идут с index.php. Одна команда убирает его.

i

PHP-расширений в образе больше, чем обещано. README официального образа утверждает, что дополнительных расширений в нем нет. По факту внутри imagick, intl, ldap, redis, memcached, apcu, pdo_pgsql и OPcache. Собирать свой образ приходится реже, чем пугает документация.

Панель управления Joomla 6.1.3 на русском языке
Панель управления после автоустановки. Мастера в браузере не было - сайт сразу рабочий.
Главное ограничение

Расширения и языковые пакеты не скачиваются в России

Каталог виден, обновления показываются, а файл не приходит. Это не настройка сервера.

Проверяли установку русского языкового пакета штатным способом - переменной образа JOOMLA_EXTENSIONS_URLS. Пакет не встал.

[ERROR] Unable to install extension curl: (35) Recv failure: Connection reset by peer

Причина. Сайт downloads.joomla.org отвечает 200 и отдает редирект 303 на s3-us-west-2.amazonaws.com. Порт 443 туда открывается, а TLS-рукопожатие сбрасывается. С машины в другой сети тот же файл качается за три секунды - источник жив, недоступен он именно с российского адреса.

Решение. Скачать архив там, где S3 доступен, положить на сервер и поставить из файла:

php cli/joomla.php extension:install --path /tmp/ru.zip

Так пакет встает нормально: ru-RU появляется и в сайте, и в админке. Но обходить это придется для каждого расширения из каталога Joomla, а не один раз.

Важно понимать масштаб: метаданные каталога доступны. Joomla покажет список языков и сообщит о новых версиях расширений - и не сможет ничего из этого скачать.

Менеджер языков Joomla: установленный русский пакет рядом с английским
Русский пакет после установки из файла. Через каталог он бы не приехал.
!

Язык сайта переключается не там, где ожидается. Ключ $language в configuration.php на язык витрины не влияет. Решает параметр site у компонента com_languages, то есть Система - Языки в админке. Язык панели управления задается отдельно, в профиле пользователя.

Почта

Почему кажется, что админка зависла

Продукт ведет себя по-разному в трех состояниях, и среднее хуже крайних.

Состояние SMTPЧто видит администратор
Настроен и работает«Письмо отправлено» за 0.5 с, письмо в ящике через секунды
Настроен, но хост недостижимэкран молчит 271 секунду, потом «Could not connect to SMTP host»

Четыре с половиной минуты тишины - это то, что получит человек, опечатавшись в адресе сервера или уткнувшись в закрытый порт. Читается как «Joomla сломалась», а не «почта не настроена».

Вторая тонкость дороже первой. Переменные образа знают только хост и порт: ни логина, ни пароля, ни шифрования там нет. Для любого релея с авторизацией почту придется настраивать в админке или дописывать в configuration.php.

!

Кнопка «Отправить тестовое письмо» проверяет сохраненные настройки, а не то, что набрано в форме. Это видно в коде: обработчик не читает входные данные запроса вообще. Сначала «Сохранить», потом «Проверить» - иначе будете чинить уже исправленное.

Настройки почты Joomla: метод SMTP, порт 587, STARTTLS, авторизация
Настройки почты живут во вкладке «Сервер» общих настроек - отдельной вкладки «Почта» в Joomla 6 нет.
Подводные камни

Где может сломаться

!

Демо-данные молча не ставятся. Кнопка установки демо-контента работает через com_ajax, и он возвращает success: true, даже когда запрос не обработал никто. Признак настоящей работы - непустое поле data в ответе, а не сам success.

!

Открытый на правку материал остается заблокированным. Joomla ставит check-out на редактируемую запись. Закрыли вкладку вместо кнопки «Отменить» - материал заблокирован, снимается через «Разблокировка элементов» в панели управления.

i

Автообновление ядра по умолчанию выключено. В панели управления это видно отдельным уведомлением. Функция появилась в 5.4 и работает для патчей и миноров - включать ее стоит сразу.

Менеджер материалов Joomla 6.1.3 со списком статей, категориями и уровнями доступа
Менеджер материалов: у каждой статьи свой уровень доступа и категория.
Деньги

Сколько это против лицензии и подписки

По профилю задач Joomla ближе к платной CMS для корпоративного сайта, чем к блогу.

РешениеЦена
1С-Битрикс: Управление сайтом, Стандарт20 500 руб лицензия + 25% в год за обновления
1С-Битрикс: Управление сайтом, Малый бизнес47 000 руб + 25% в год
Tilda Personalот $10 в месяц за один сайт
Joomla у себястоимость одной машины

Про Битрикс часто забывают вторую строчку: без продления перестают приходить обновления, включая исправления безопасности. «Купил один раз» на практике означает годовой платеж.

Три года владения корпоративным сайтом: Joomla на CPU2-RAM4-DISK50 - 18 000 руб за сервер и ноль за лицензию; Битрикс «Стандарт» - 30 750 руб лицензий и продлений плюс тот же сервер.

Честная оговорка: стоимость работ не входит никуда, и она обычно больше разницы в лицензиях. Подрядчиков по Joomla меньше, чем по WordPress или Битриксу, и это может съесть всю экономию.

Безопасность

Безопасность и обновления

У Joomla своя CVE Numbering Authority с ноября 2020 года: команда безопасности проекта присваивает идентификаторы уязвимостей не только ядру, но и расширениям экосистемы. Есть публичный список уязвимых расширений.

Для CMS, чья историческая репутация испорчена именно дырявыми сторонними модулями, это работающий институт, а не строчка в пресс-релизе.

Что сделать перед продом: сменить сгенерированные пароли базы и администратора, оставить контейнер на 127.0.0.1 и отдавать наружу только через прокси с TLS, включить автообновление ядра и двухфакторную аутентификацию.

docker compose pull
docker compose up -d

Обновление патчей - смена тега и перезапуск. Мажорный переход между 5.x и 6.x так не делается, его проходят из админки.

Рядом

Связь с другими стеками

  • Обратный прокси - Caddy или Traefik для домена и автоматического TLS.
  • WordPress - если нужна экосистема и исполнители, а не многоязычность в ядре.
  • Аналитика - Plausible или Umami рядом, без внешних счетчиков на сайте.
Без иллюзий

Когда это НЕ ваш выбор

Новый проект с нуля

Блог, лендинг, магазин - берите WordPress или конструктор. Количество готовых решений и исполнителей решает больше, чем богатое ядро.

Расширения нужны из каталога Joomla

С российского сервера они не скачиваются: файлы лежат на AWS S3, доступ закрыт. Каждое расширение придется приносить руками.

Нужен подрядчик завтра

Доля рынка падает одиннадцать лет. Найти Joomla-разработчика сложнее и дороже, чем WordPress-разработчика.

FAQ

Частые вопросы

Сколько Joomla ест в простое?

141 МиБ на два контейнера: 33 МиБ сама Joomla и 108 МиБ база. После прогрева запросами - 154 МиБ.

Когда кончается поддержка Joomla 5?

Обычные багфиксы - 13 октября 2026, исправления безопасности - 12 октября 2027. У линии 6.x запас до 2028 и 2029 годов.

Обновится ли Joomla 5 до 6 автоматически?

Нет. Автообновление работает только внутри линии. Мажорный переход делается вручную, и правильный путь идет через 5.4.

Почему не ставится русский языковой пакет?

Файлы каталога Joomla лежат на AWS S3 в регионе us-west-2, куда с российского сервера не проходит TLS. Пакет нужно скачать отдельно и поставить из файла.

MySQL или MariaDB?

MariaDB. На нашем замере она заняла 108 МиБ против 482 у MySQL 8.4 и подняла сайт за 73 секунды вместо 188.

Нужно ли проходить мастер установки в браузере?

Нет. Официальный образ ставит сайт из переменных окружения и сам удаляет каталог installation.

Чем Joomla лучше WordPress?

Многоязычность, права доступа, рабочий процесс публикации и 2FA работают из коробки. Экосистема при этом в разы меньше.

Какая лицензия?

GPL-2.0 или новее, на все ядро и штатные шаблоны. Платных редакций у проекта нет.

Проверено на версии 6.1.3, сентябрь 2026. На новых версиях результаты могут отличаться.

Итог

Joomla 6.1.3 - зрелая CMS с богатым ядром и сужающимся рынком. Два контейнера, 141 МиБ в простое, пять минут от чистой машины до сайта по HTTPS, тариф CPU2-RAM4-DISK50 с многократным запасом. Выбирать ее для нового блога причин мало. Обслуживать и обновлять существующий сайт - причин достаточно, тем более что 13 октября 2026 у линии 5.x заканчиваются багфиксы. Главное ограничение в России: расширения и языковые пакеты из каталога Joomla на сервер не скачиваются, их приходится приносить файлами.

Рекомендуемая конфигурация для установки:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe

Не хотите устанавливать вручную?

Запустите Joomla на этой конфигурации автоматически - от 450 ₽/мес.

Запустить Joomla →
Анонсы новых разборов в Telegram-канале Новые гайды и карточки в маркетплейсе первыми @fatmetal_channel ->

Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50 за прокси с TLS. Нашли ошибку в гайде - напишите, поправим в течение дня.