Как установить и настроить Joomla на VPS
Joomla — зрелая PHP-CMS для многофункциональных сайтов, порталов и каталогов, и установить Joomla на VPS вручную стоит, когда нужен полный контроль над сервером, скорость и гибкость настройки без ограничений общего хостинга. Joomla занимает нишу между простым WordPress и сложным Drupal: у неё богатая система управления доступом, многоязычность из коробки и мощная система расширений. В этом руководстве развернём Joomla с нуля на связке Apache + PHP + MySQL: подготовим сервер, поставим веб-окружение, создадим базу, загрузим Joomla, пройдём веб-установщик, выставим права и выпустим бесплатный SSL.
Прежде чем начать, определимся со стеком. Joomla работает на PHP и MySQL/MariaDB, а веб-сервером возьмём Apache — он проще для тех, кто привык к .htaccess, а Joomla поставляет готовый .htaccess для человекочитаемых URL. Впрочем, Joomla отлично работает и на Nginx. Для одного сайта хватит VPS от 1–2 ГБ RAM. Всю установку выполняем по SSH под root или пользователем с sudo. Разберём каждый шаг с командами и пояснениями, отметив места, где новички чаще всего спотыкаются.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Подготовка сервера и установка LAMP
Начнём с обновления системы и установки компонентов LAMP: Apache, MySQL и PHP с расширениями, которые нужны Joomla для работы с изображениями, базой, XML и архивами. На Ubuntu/Debian:
apt update && apt -y upgrade
apt -y install apache2 mysql-server php php-mysql php-gd php-xml php-curl php-mbstring php-zip php-intl libapache2-mod-php
После установки включите модуль перезаписи Apache (нужен для SEO-ссылок Joomla) и перезапустите веб-сервер:
a2enmod rewrite
systemctl restart apache2
Проверьте, что Apache открывается по IP сервера в браузере — покажется стандартная страница. Если нет, откройте порты 80 и 443 в фаерволе: ufw allow 'Apache Full'. Набор расширений PHP не случаен: без php-gd не будут обрабатываться изображения, без php-xml и php-intl — часть системных функций и многоязычность.
Создание базы данных для Joomla
Joomla хранит контент и настройки в базе данных. Создадим отдельную базу и пользователя. Войдите в консоль MySQL:
mysql
Выполните команды создания базы, пользователя и выдачи прав (замените значения на свои):
CREATE DATABASE joomla CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'joomlauser'@'localhost' IDENTIFIED BY 'надёжный_пароль';
GRANT ALL ON joomla.* TO 'joomlauser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Кодировка utf8mb4 обеспечивает полноценную поддержку Unicode. Запишите имя базы, пользователя и пароль — они понадобятся в веб-установщике. Отдельный пользователь с правами только на свою базу — правильная практика безопасности: при компрометации сайта злоумышленник не доберётся до других баз на сервере.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPSЗагрузка и размещение Joomla
Скачайте актуальную версию Joomla с официального сайта и распакуйте её в каталог сайта. Создайте каталог, скачайте архив и распакуйте:
mkdir -p /var/www/vashdomen.ru
cd /var/www/vashdomen.ru
wget https://downloads.joomla.org/cms/joomla5/5-2-0/Joomla_5-2-0-Stable-Full_Package.zip -O joomla.zip
unzip joomla.zip
Номер версии в ссылке замените на актуальный из раздела загрузок. После распаковки назначьте владельцем каталога пользователя веб-сервера, чтобы Joomla могла записывать файлы (расширения, загрузки, кэш):
chown -R www-data:www-data /var/www/vashdomen.ru
Правильный владелец избавляет от массы проблем с установкой расширений и загрузкой медиа. Удалите архив после распаковки, чтобы он не лежал в открытом доступе.
Небольшое пояснение про структуру Joomla, чтобы дальнейшие шаги были осмысленными. В корне сайта после распаковки вы увидите каталоги administrator (панель управления, доступная по адресу /administrator), components, modules, plugins и templates (это и есть расширяемые части системы), images и media (загруженный контент), а также cache и tmp (временные файлы). Конфигурация подключения к базе и основные настройки хранятся в файле configuration.php, который создаётся веб-установщиком на последнем шаге. Понимание этой структуры пригодится и при обслуживании, и при диагностике: например, отключить сбойное расширение можно, переименовав его каталог, а очистить залипший кэш — удалив содержимое cache.
Настройка Apache и запуск веб-установщика
Создайте конфиг виртуального хоста Apache для сайта в /etc/apache2/sites-available/vashdomen.ru.conf с указанием DocumentRoot на каталог сайта и разрешением AllowOverride All (чтобы работал .htaccess Joomla). Активируйте сайт и перезапустите Apache:
a2ensite vashdomen.ru
systemctl reload apache2
Направьте A-запись домена на IP сервера и дождитесь распространения DNS:
dig +short vashdomen.ru
Откройте http://vashdomen.ru в браузере — запустится веб-установщик Joomla. Он проведёт через шаги: выбор языка, название сайта, создание учётной записи администратора (не используйте очевидный логин admin), ввод данных базы (имя joomla, пользователь joomlauser, пароль). После завершения установщик попросит удалить установочный каталог — сделайте это обязательно, иначе сайт останется уязвим.
Выпуск SSL и переименование установочной папки
После установки Joomla работает по незащищённому HTTP. Выпустите бесплатный сертификат Let's Encrypt через certbot:
apt -y install certbot python3-certbot-apache
certbot --apache -d vashdomen.ru -d www.vashdomen.ru
Certbot пропишет сертификат в конфиг Apache и предложит включить редирект на HTTPS — согласитесь. Сертификаты продлеваются автоматически. Для успеха домен уже должен резолвиться на сервер, а порт 80 быть открыт.
Убедитесь, что каталог installation удалён (Joomla обычно удаляет его сама на последнем шаге). В настройках Joomla (Система → Общие настройки → Сайт) включите SEO-оптимизацию URL и перепись адресов с использованием .htaccess — это даёт человекочитаемые ссылки. На этом базовая настройка завершена, сайт готов к наполнению.
Безопасность и обслуживание
Свежую Joomla защищайте сразу. Держите ядро и расширения обновлёнными — большинство взломов Joomla происходят через устаревшие сторонние расширения. Обновления ставятся в админке (Система → Обновление). Закройте лишние порты фаерволом (оставьте 80, 443, SSH), настройте вход по SSH-ключу. Смените префикс таблиц базы на нестандартный (задаётся в установщике) — это усложняет автоматические атаки.
Настройте резервное копирование сайта и базы с выгрузкой вне сервера — для Joomla удобно расширение Akeeba Backup, создающее полные копии в один клик. Регулярно проверяйте права файлов: конфигурационный файл configuration.php должен быть доступен только на чтение (644 или строже). Следите за ресурсами: при росте трафика и тяжёлых расширениях сайту понадобится больше памяти. На VPS MAATRIX ресурсы наращиваются без переустановки, если проект вырастет.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPSОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Joomla, WordPress или Drupal — что выбрать?
Joomla — золотая середина: мощнее WordPress по управлению доступом и многоязычности, но проще Drupal. Подходит для порталов, каталогов, сайтов с разными ролями пользователей. Для простого блога проще WordPress, для сложной кастомной логики — Drupal.
Какой стек нужен для Joomla?
PHP 8.x, MySQL/MariaDB и веб-сервер Apache или Nginx. Обязательны расширения PHP для изображений (gd), XML, mbstring, intl и zip. На VPS вы сами ставите нужные версии без ограничений хостинга.
Хватит ли 1 ГБ RAM?
Для одного сайта с умеренным трафиком — да. При росте посещаемости, тяжёлых компонентах (магазин, форум) берите 2 ГБ и больше. На VPS MAATRIX память увеличивается без переустановки сайта.
Как защитить Joomla от взлома?
Своевременно обновляйте ядро и особенно сторонние расширения (главный вектор атак), удалите каталог installation, используйте нестандартный префикс таблиц и надёжный пароль администратора, закройте лишние порты фаерволом и делайте регулярные бэкапы вне сервера.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.