Joomla
Классическая CMS на PHP, у которой многоязычность, права доступа и рабочий процесс публикации лежат в ядре, а не в плагинах. Поставили 6.1.3 официальным образом на чистую машину, померили расход и нашли то, о чем не пишет документация: каталог расширений Joomla с российского сервера недоступен.
Вердикт
- у кого уже есть сайт на Joomla: 13 октября 2026 у линии 5.x кончаются багфиксы
- многоязычному корпоративному сайту с ролями и уровнями доступа
- студиям: чистый стенд за пять минут, чтобы проверить обновление до 6.x
- тем, кто не хочет платить за лицензию CMS и продлевать ее каждый год
- новому блогу, лендингу или магазину с нуля: там WordPress или конструктор
- если нужно быстро найти подрядчика: доля рынка падает 11 лет подряд
- если расширения планируется ставить из каталога Joomla прямо на сервере
- headless и API-first сценариям: это другой класс продуктов
Что это и кому сегодня нужно
Серверная CMS на PHP: сайт, портал, каталог. Живет с 2005 года, принадлежит некоммерческому фонду.
Joomla ставится на обычный LAMP, хранит контент в MySQL, MariaDB или PostgreSQL и отдает страницы сервером. Не headless, не генератор статики, не конструктор.
Правами на код владеет Open Source Matters - американская некоммерческая организация. Платных редакций нет вовсе: продавать вам про-версию структурно некому, и сменить лицензию на BSL тоже некому.
Начнем с неприятного, потому что прятать это бессмысленно. Доля Joomla на рынке CMS падает одиннадцать лет подряд.
| Доля рынка CMS | 2015 | 2019 | 2022 | сентябрь 2026 |
|---|---|---|---|---|
| WordPress | 60.7% | 59.7% | 65.2% | 58.7% |
| Joomla | 8.6% | 5.4% | 2.6% | 1.6% |
| Drupal | 5.1% | 3.5% | 2.0% | 0.9% |
| Wix | 0.3% | 1.8% | 2.9% | 6.2% |
Читается это не как «Joomla провалилась», а как «просела вся категория». Drupal упал в те же пять раз, долю забрали конструкторы. Joomla при этом остается второй среди self-hosted CMS, впереди Drupal.
Полтора процента рынка - это по-прежнему миллионы живых сайтов. Вопрос у их владельцев сейчас не «выбрать ли Joomla», а «что делать с тем, что уже стоит».
Витрине проекта не верьте. Страница возможностей на joomla.org до сих пор обещает «более 6% рынка CMS» и «более 8000 расширений». Реальность - 1.6% и 4901 расширение по счетчику самого каталога. Достоверны роадмап и руководство, а не главная страница.
Что здесь есть без единого плагина
Главная причина смотреть на CMS с долей в полтора процента.
Joomla - не бедный WordPress, а другой размен: богаче ядро, беднее экосистема. Сравнение по тому, что работает сразу после установки.
| Возможность | Joomla 6 | WordPress |
|---|---|---|
| Многоязычный контент | в ядре, 70+ языковых пакетов, языковые связки | плагином, WPML платный |
| Права доступа (ACL) | в ядре: группы и уровни доступа | в ядре только роли |
| Рабочий процесс публикации | в ядре, с 6.1 визуальный редактор схемы | плагином |
| Двухфакторная аутентификация | в ядре | плагином |
| Переопределение шаблонов | в ядре: template и language overrides | темы-потомки |
| Расширений в каталоге | 4901 | десятки тысяч |
Для сайта-визитки этот размен проигрышный. Для многоязычного корпоративного сайта с разграничением доступа - выигрышный, и именно за такой профиль обычно платят лицензией.
Из нового в 6.1: CAPTCHA на доказательстве работы прямо в ядре - без аккаунта и обращений к Google, визуальный редактор процесса публикации, медиа-поля для аудио и видео, история версий для модулей.
Две линии и дата 13 октября
Joomla ведет две поддерживаемые ветки сразу и выпускает патчи парами в один день.
| Линия | Текущая версия | Багфиксы до | Только безопасность до |
|---|---|---|---|
| 5.x | 5.4.8 | 13 октября 2026 | 12 октября 2027 |
| 6.x | 6.1.3 | 17 октября 2028 | 16 октября 2029 |
Если сайт на 5.x, обычные исправления для него заканчиваются в октябре 2026. Дальше год только заплатки безопасности - и все.
Автообновление работает внутри линии: патчи и миноры с 5.4 и 6.0 ставятся сами. Переход 5.4 на 6.x автоматически не делается, только вручную из админки или внешним инструментом.
Правильный путь на 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 200 | 73 с |
| Итого с чистой машины | ~5 минут |
| Ответ главной через TLS | 199 мс (медиана из 10) |
| Ответ админки через TLS | 170 мс |
| Ответ локально, без TLS | 67 мс |
Требований к памяти и диску проект не публикует вообще - только версии PHP и СУБД. Поэтому цифры выше единственные, на что тут можно опереться.
Контейнер Joomla растет от использования: 33 МиБ сразу после старта и 45 МиБ после шестидесяти запросов. Для сравнения, WordPress на том же тарифе и той же схеме держался в 198 МиБ - Joomla немного легче ближайшего аналога.
MariaDB вместо MySQL экономит больше, чем весит сам продукт
Пример в документации официального образа пинит MySQL. Мы померили обе базы на одной машине.
| Показатель | MySQL 8.4 | MariaDB 11 |
|---|---|---|
| Память базы в простое | 482 МиБ | 108 МиБ |
| Размер образа базы | 1.12 ГБ | 458 МБ |
| От запуска до HTTP 200 | 188 с | 73 с |
| Ответ главной через TLS | 260 мс | 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 ₽/мес
Поставить Docker
sudo apt-get install -y docker-ce docker-ce-cli containerd.io \ docker-buildx-plugin docker-compose-pluginИз официального репозитория docker.com. Заняло 86 секунд.
Описать два сервиса
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.Задать переменные автоустановки
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образ удаляет сам - классической дыры забытого сайта не остается.Запустить и подождать четыре минуты
docker compose pull docker compose up -dПосле
up -dпорт 73 секунды отдает ноль: образ разворачивает ядро в том и ставит базу. Это не зависание.Включить человеческие адреса
docker compose exec joomla \ php cli/joomla.php config:set sef_rewrite=trueФайл
.htaccessобраз создает сам иmod_rewriteвключает, но из коробки адреса идут сindex.php. Одна команда убирает его.
PHP-расширений в образе больше, чем обещано. README официального образа утверждает, что дополнительных расширений в нем нет. По факту внутри imagick, intl, ldap, redis, memcached, apcu, pdo_pgsql и OPcache. Собирать свой образ приходится реже, чем пугает документация.
Расширения и языковые пакеты не скачиваются в России
Каталог виден, обновления показываются, а файл не приходит. Это не настройка сервера.
Проверяли установку русского языкового пакета штатным способом - переменной образа JOOMLA_EXTENSIONS_URLS. Пакет не встал.
Причина. Сайт 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 покажет список языков и сообщит о новых версиях расширений - и не сможет ничего из этого скачать.
Язык сайта переключается не там, где ожидается. Ключ $language в configuration.php на язык витрины не влияет. Решает параметр site у компонента com_languages, то есть Система - Языки в админке. Язык панели управления задается отдельно, в профиле пользователя.
Почему кажется, что админка зависла
Продукт ведет себя по-разному в трех состояниях, и среднее хуже крайних.
| Состояние SMTP | Что видит администратор |
|---|---|
| Настроен и работает | «Письмо отправлено» за 0.5 с, письмо в ящике через секунды |
| Настроен, но хост недостижим | экран молчит 271 секунду, потом «Could not connect to SMTP host» |
Четыре с половиной минуты тишины - это то, что получит человек, опечатавшись в адресе сервера или уткнувшись в закрытый порт. Читается как «Joomla сломалась», а не «почта не настроена».
Вторая тонкость дороже первой. Переменные образа знают только хост и порт: ни логина, ни пароля, ни шифрования там нет. Для любого релея с авторизацией почту придется настраивать в админке или дописывать в configuration.php.
Кнопка «Отправить тестовое письмо» проверяет сохраненные настройки, а не то, что набрано в форме. Это видно в коде: обработчик не читает входные данные запроса вообще. Сначала «Сохранить», потом «Проверить» - иначе будете чинить уже исправленное.
Где может сломаться
Демо-данные молча не ставятся. Кнопка установки демо-контента работает через com_ajax, и он возвращает success: true, даже когда запрос не обработал никто. Признак настоящей работы - непустое поле data в ответе, а не сам success.
Открытый на правку материал остается заблокированным. Joomla ставит check-out на редактируемую запись. Закрыли вкладку вместо кнопки «Отменить» - материал заблокирован, снимается через «Разблокировка элементов» в панели управления.
Автообновление ядра по умолчанию выключено. В панели управления это видно отдельным уведомлением. Функция появилась в 5.4 и работает для патчей и миноров - включать ее стоит сразу.
Сколько это против лицензии и подписки
По профилю задач 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-разработчика.
Частые вопросы
Сколько 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 ₽/мес.
Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50 за прокси с TLS. Нашли ошибку в гайде - напишите, поправим в течение дня.