Как поставить Joomla 4 на выделенный сервер VDSVPS

Как поставить Joomla 4 на выделенный сервер VDSVPS

Редакция выделила бюджет, поэтому берем сервер помощнее . Например, провайдер IT-инфраструктуры Selectel предлагает серверы, оснащенные 4-768 ГБ ОЗУ , 2-72 ядрами ЦП , возможность подключить графический ускоритель и выбрать в качестве сервера даже Raspberry Pi 4 (4/64 ГБ) и Mac mini для iOS-разрабов . Плюс, быстрая тех. поддержка, наличие резервного копирования и API. Такие серверы предназначены для нескольких десятков небольших сайтов или одного крупного.

Мы выберем следующую конфигурацию:

Как поставить Joomla 4 на выделенный сервер VDSVPS

Intel Core i7-8700, 6 ядер по 3.2 ГГц, 32 ГБ ОЗУ, 960 ГБ SSD – отлично, Джумлу потянет.

В качестве ОС выбираем Ubuntu 20.04:

Как поставить Joomla 4 на выделенный сервер VDSVPS Как поставить Joomla 4 на выделенный сервер VDSVPS

Арендуем сразу два сервера, чтобы два раза не вставать:

Как поставить Joomla 4 на выделенный сервер VDSVPS

Кликнем по Первому серверу , перейдем во вкладку Операционная система и узнаем IP нашего сервера, имя пользователя и пароль:

Как поставить Joomla 4 на выделенный сервер VDSVPS

Чтобы зайти на сервер скачаем Putty (Windows), впишем в него IP-адрес, порт 22 и нажмем на Open :

Как поставить Joomla 4 на выделенный сервер VDSVPS

Пользователям Ubuntu достаточно открыть терминал ( Ctrl + Alt + T ) и ввести:

Нас попросят ввести логин и пароль. Заходим под рутом ( root ) и приступаем к установке Джумлы.

1.1. Обновление системы

1.2. Создание пользователя

В целях безопасности не рекомендуется работать под рутом, поэтому создадим нового пользователя alfred с помощью команды adduser :

Добавим пользователя alfred в группу sudo :

Перелогинимся под пользователя alfred :

1.3. Установка сервера MySQL

Установим MySQL-сервер командой:

Скрипт mysql_secure_installation позволяет настроить базовую защиту MySQL-сервера:

  • устанавливает/меняет пароль root-пользователя;
  • удаляет анонимных пользователей;
  • ограничивает удаленный доступ root-пользователя;
  • удаляет тестовую базу данных.

Что нам выбрать:

Логин под рутом нам еще пригодится, поэтому оставим удаленный доступ.

1.4. Создание базы данных

Создадим базу данных joomla_db :

Создадим пользователя базы данных joomla_user с паролем password :

Предоставим пользователю joomla_user все привилегии на управление таблицей joomla_db :

Перезагрузим привилегии, чтобы изменения вступили в силу:

Выйдем из mysql:

1.5. Установка PHP

В репозиториях Ubuntu 20.04 присутствует только php 7.4. Поскольку нам нужна версия 8, потребуется подключить сторонний репозиторий PPA:

Joomla 4 поддерживает PHP восьмой версии. Для установки PHP 8 и сопутствующих пакетов введем:

Изменим параметры файла конфигурации php.ini в соответствии с параметрами нашего сервера. Воспользуемся командой sed, которая ищет строчку в файле и заменяет ее на другую:

Директива memory_limit устанавливает доступный для PHP объем памяти в мегабайтах (M):

upload_max_filesize задает максимальный размер закачиваемого файла:

post_max_size – максимально допустимый размер данных, отправляемых методом POST.

max_execution_time – время, отведенное PHP-коду на исполнение.

Все настройки можно также изменить, открыв файл php.ini с помощью редактора nano :

1.6. Установка Nginx

Зайдем на сайт, введя в браузере его IP. Если все хорошо, то получим приветственное сообщение:

Как поставить Joomla 4 на выделенный сервер VDSVPS

Создадим конфигурационный файл виртуального хоста:

mysite.com – домен. Если у нас есть только IP-адрес и нет домена, мы все равно можем создать папку с именем домена и прописать путь к этой папке в настройках.

Заполним файл следующими строчками:

Нажимаем сочетание клавиш Ctrl + O , затем Enter , чтобы сохранить изменения и Ctrl + X , чтобы выйти из редактора nano.

server_name 5.188.158.146 – сюда записываем через запятую IP-адрес и/или домен, например server_name 5.188.158.146, mydomain.com . Ограничимся только IP-адресом.

Мы создали виртуальный хост. Чтобы его активировать, создадим символьную ссылку на файл с конфигурацией и разместим ее в каталоге sites-enabled , который Nginx будет считывать при запуске:

Проверим конфигурацию Nginx на наличие синтаксических или системных ошибок:

Если ошибок нет, получим:

1.7. Загрузка Джумлы

Скачаем последнюю версию Джумлы и переименуем архив в joomla.zip :

Создадим папку с нашим сайтом mysite.com :

Чтобы разархивировать архив, установим утилиту unzip :

Разархивируем Джумлу в папку mysite.com :

Наделим пользователя www-data правами ( chown ) на все файлы и папки внутри директории ( -R , то есть рекурсивно) /var/www/mysite.com :

Еще раз зайдем на наш сайт через браузер и увидим установщик Джумлы:

Как поставить Joomla 4 на выделенный сервер VDSVPS

Создадим учетную запись:

Как поставить Joomla 4 на выделенный сервер VDSVPS

Заполним параметры учетной записи админа:

Как поставить Joomla 4 на выделенный сервер VDSVPS

и заполним поля с именем БД, именем пользователя БД и его паролем:

Как поставить Joomla 4 на выделенный сервер VDSVPS

После установки Джумлы:

Как поставить Joomla 4 на выделенный сервер VDSVPS

перейдем в панель администратора http://5.188.158.146/administrator/ (вместо этого IP напишите свой) залогинимся и создадим свою первую запись:

Как поставить Joomla 4 на выделенный сервер VDSVPS

Заполним поля и кликнем по кнопке Save & Close :

Как поставить Joomla 4 на выделенный сервер VDSVPS

Перейдем во вкладку Content → Articles и кликнем по Toggle featured status :

Как поставить Joomla 4 на выделенный сервер VDSVPS

Перейдем на главную страницу http://5.188.158.146/ :

Как поставить Joomla 4 на выделенный сервер VDSVPS

1.8. Настройка фаервола

UFW (Uncomplicated Firewall) – популярная и простая утилита для настройки и управления фаерволом в дистрибутивах Ubuntu и Debian. По умолчанию фаервол уже установлен, но не активирован.

Если фаервол вдруг не установлен, то установим его командой:

Узнаем текущий статус фаервола:

Посмотрим профили приложений:

В зависимости от пакетов, установленных в системе, вывод будет выглядеть следующим образом:

Разрешим фаерволу доступ к профилям OpenSSH и ‘Nginx Full’ :

Если понадобится отключить фаервол, воспользуемся командой:

1.9. Защита от брутфорса: fail2ban

В сети полно ботнетов, непрерывно сканирующих стандартные порты подключения SSH и пытающихся выполнить атаку перебором. Защищаемся от этого, ограничив количество неудачных попыток входа на сервер с помощью программы fail2ban .

и проверим его статус:

Получим следующий вывод:

Чтобы изменить настройки fail2ban откроем файл конфигурации:

Найдем в нем следующие строчки:
maxretry = 5 – количество неудачных попыток входа до бана.
findtime = 10m – IP-адрес банится, если в течение 10 минут было предпринято 5 неудачных попыток хода.
bantime = 10m – IP-адрес банится на 10 минут.

Если поменяли параметры, то нужно перезапустить сервис fail2ban , чтобы изменения вступили в силу:

1.10. Установка SSL-сертификата

SSL-сертификат можно поставить только с доменом (IP-адрес не подойдет). Если домен есть, то получим и установим бесплатный сертификат через центр сертификации Let’s Encrypt.

Для этого установим утилиту сerbot, которая автоматизирует все шаги и ее плагин для Nginx:

Получим сертификат для домена mydomain.com :

2. Миграция

Теперь перенесем БД и файлы с Джумлой на второй сервер.

2.1. Устанавливаем PHP и Nginx

Данные второго сервера:

Как поставить Joomla 4 на выделенный сервер VDSVPS

Заходим на второй сервер и обновляемся:

Откроем файл с конфигурацией Nginx:

Конфигурация как у первого сервера, только поменялся IP-адрес:

Создадим символьную ссылку:

Проверим файл конфигурации на ошибки:

Перезапустим сервер Nginx:

2.2. Переносим базу данных

Перенос БД включает в себя следующие шаги:

  1. Экспорт БД с помощью утилиты mysqldump .
  2. Архивация дампа БД.
  3. Перенос архива с дампом БД на второй сервер, используя команду scp .
  4. Создание пользователя базы данных и пустой базы данных на втором сервере.
  5. Распаковка архива с дампом БД на втором сервере.
  6. Импорт в пустую базу данных дампа БД.

Зайдем на первый сервер и перелогинимся под рута:

Сделаем дамп базы данных с помощью утилиты mysqldump и сохраним дамп БД в папке /home/alfred/ :

Установим архиватор zip :

Перейдем в папку пользователя alfred :

и заархивируем дамп БД:

Создадим на втором сервере пользователя alfred :

Перенесем дамп БД с первого сервера на второй. Для этого вернемся к первому серверу и введем:

команда scp – копирует файлы по ssh между компьютерами под управлением Linux.
root – логин администратора второго сервера.
84.38.184.67 – IP второго сервера.

Зайдем на второй сервер и установим утилиту для распаковки архива unzip:

Распакуем архив с дампом БД в папку пользователя alfred :

Создадим пустую базу данных joomla_db :

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

Дадим ему привилегии на управление базой данных:

Выйдем из MySQL:

Перейдем в папку пользователя alfred :

Импортируем в пустую базу данных joomla_db дамп БД, который мы сделали на первом сервере:

Базу данных перенесли, теперь очередь Джумлы.

2.3. Переносим файлы Джумлы

Перенос файлов Джумлы включает в себя следующие шаги:

  1. Архивация папки с Джумлой.
  2. Перенос архива на второй сервер с помощью команды scp .
  3. Распаковка архива в папку /var/www/mysite.com .

Зайдем на первый сервер:

Заархивируем файлы Джумлы в папку пользователя alfred :

Создадим на втором сервере папку mysite.com :

Зайдем на первый сервер и перенесем архив с Джумлой на второй сервер:

Зайдем на второй сервер и разархивируем архив с Джумлой в папку /var/www/ :

Наделим пользователя правами ( chown ) на подпапки с сайтом:

Перейдем на главную страницу второго сервера http://84.38.184.67 :

Как поставить Joomla 4 на выделенный сервер VDSVPS

PS: в целях безопасности можно отключить логин под рутом по SSH. Для этого откроем конфиг SSH-сервера:

Найдем строчку PermitRootLogin yes и поменяем yes на no .

Перезапустим сервер SSH:

3. Расширения

Расширения Joomla помогут превратить сайт в интернет-магазин, ускорить загрузку сайта, позаботиться о безопасности и многое другое. Расширения доступны по адресу

extensions.joomla.org . Вот самые популярные из них:

Расширения для интернет магазина

    – расширение электронной коммерции для всех версий Joomla. – более 400 тыс. новых пользователей расширением за 3 года. – просто устанавливаете, добавляете продукты, включаете встроенные модули, плагины оплаты, плагины доставки и начинаете принимать заказы.
    – помогает размечать структурированные данные на страницы, чтобы Google точнее распознавал данные на ней и использовать их в результатах поиска. , Aimy Speed Optimization PRO – увеличивает скорость загрузки страницы за счет объединения, сжатия и кэширования файлов. – сообщает социальным сетям какую информацию отображать каждый раз, когда кто-либо другой делится ссылкой на ваш сайта.

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

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

Отображение контента

    – отражает статьи из выбранных категорий с датой и дизайном на выбор. – кастомизирует отображение новостей как предыдущее расширение. – заголовок статьи будет прокручиваться снизу вверх по вертикали. – создает неограниченное количество групп и слайдов. – отображает изображения или видео с красивыми эффектами. – галерея с 15 способами отображения контента. – расширяет коллекцию основных полей Joomla: YouTube, Vimeo, HTML-Audio, Google Map и др. – позволяет пользователям и редактору легко устанавливать маркеры на карту OpenStreetMap. – можно использовать Google Maps и Openstreet Maps вместе.

4. Локализация Джумлы

Чтобы поменять язык на русский перейдем в System → Language → Вводим в поле поиска russian → Install :

Как поставить Joomla 4 на выделенный сервер VDSVPS

Сделаем Русский язык основным: System → Manage → Langua ges → Выберем Russian значением по дефолту:

Как поставить Joomla 4 на выделенный сервер VDSVPS

5. Ускорение Джумлы и настройка бэкапа

5.1. Включение кэша

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

Чтобы включить кэширование перейдем в Панель управления → Общие настройки → Система и выберем Стандартное кэширование :

Как поставить Joomla 4 на выделенный сервер VDSVPS

Стандартное кэширование отдает одинаковый кэш всем посетителям, прогрессирующее кэширование создает кэш для каждого отдельного посетителя.

Чтобы сбросить кэш, откроем Панель управления → вкладку System и кликнем по Очистить кэш → Очистить все .

5.2. Сжатие страницы

Gzip сжимает страницу перед отправкой ее посетителю. Для включения сжатия перейдем:

Панель управления → Общие настройки → Сервер и включим Gzip-сжатие страниц :

Как поставить Joomla 4 на выделенный сервер VDSVPS

5.3. Объединение CSS и JavaScript

Расширение JCH Optimize объединяет JavaScript- и CSS-файлы в один, снижая объем передаваемых данных и уменьшая количество HTTP-запросов к серверу.

Чтобы установить расширение перейдем в Система → Расширения → Установить из JED и введем в поле поиска JCH Optimize :

Как поставить Joomla 4 на выделенный сервер VDSVPS

Перейдем на страницу расширения и установим его. Настройки расширения доступны в Компоненты → JCH Optimize . По умолчанию сжатие JS и CSS включены.

5.4. Настройка бэкапа

С помощью расширения Akeeba Backup можно делать бэкапы в один клик. Установим Akeeba Backup через JED. Теперь перейдем в Компоненты → Akeeba Backup и кликнем по кнопке Default Backup Profile . Бэкап создается автоматически и будет доступен в Manage Backups:

Как поставить Joomla 4 на выделенный сервер VDSVPS

5.5. Быстрый хостинг

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