Этап 1: Выбор и установка операционной системы
Для классического сервера у вас есть два основных бесплатных варианта: Ubuntu Server (более популярен, больше готовых решений в интернете) и Debian (консервативен и очень стабилен). Оба отлично подойдут. Я приведу инструкции для Ubuntu Server как для более распространенного варианта, но они с небольшими изменениями подойдут и для Debian.

Что нам понадобится:

  • Компьютер под управлением Windows/macOS для подготовки флешки.

  • USB-флешка объемом от 2 ГБ.

  • Доступ в интернет на вашем будущем сервере (желательно по проводу, для стабильности).

Процесс установки Ubuntu Server:

  1. Скачивание образа: Зайдите на официальный сайт Ubuntu и скачайте последнюю версию Ubuntu Server LTS (например, 22.04 или 24.04). LTS-версии означают "Long Term Support" и получают обновления 5-10 лет, что идеально для сервера .

  2. Создание загрузочной флешки: Скачанный ISO-образ необходимо записать на флешку. Для этого есть отличные бесплатные программы:

    • balenaEtcher (простая и понятная, рекомендую)

    • Rufus (для Windows, более продвинутая)
      Вставьте флешку, откройте программу, выберите скачанный образ и нажмите "Записать" .

  3. Загрузка с флешки:

    • Вставьте флешку в ваш сервер и включите его.

    • Сразу после включения нажмите клавишу для вызова Boot Menu (обычно это F2, F10, F12 или Del). Точную клавишу можно увидеть на первом экране загрузки или посмотреть в инструкции к материнской плате .

    • В появившемся меню выберите вашу USB-флешку и нажмите Enter.

  4. Установка:

    • Язык: Выберите English (с русским языком в серверной версии могут быть проблемы с кодировками) и нажмите Enter .

    • Обновление установщика: Если появится предложение обновить installer, можно смело выбрать "Update to the new installer" и нажать Enter.

    • Раскладка клавиатуры: Выберите English (US) или Russian — как вам удобнее. Для сервера, к которому вы будете подключаться удаленно, раскладка не так важна .

    • Тип установки: Выберите Ubuntu Server (стандартный набор пакетов), а не минимизированную версию .

    • Сеть: Установщик попытается настроить сеть через DHCP. Для сервера лучше задать статический IP-адрес, чтобы он не менялся после перезагрузок. Выберите сетевой интерфейс (например, enp0s3), нажмите Enter, затем выберите Edit IPv4 -> Manual и введите ваш IP-адрес, маску подсети, шлюз и DNS-сервер (например, 8.8.8.8). Если вам сложно настраивать сейчас, выберите Continue without network — это можно сделать и позже .

    • Прокси: Оставьте поле пустым и выберите Done.

    • Зеркало Ubuntu: Оставьте предложенный вариант и нажмите Done.

    • Разметка диска: Для простоты выберите Use an entire disk. Убедитесь, что выбран нужный диск (желательно SSD), снимите галочку с Set up this disk as an LVM group (если не знаете, зачем это нужно) и нажмите Done . Подтвердите очистку диска, выбрав Continue.

    • Имя пользователя и пароль:

      • Your name: Ваше имя (например, Your Name).

      • Your server's name: Имя сервера в сети (например, home-server).

      • Pick a username: Ваш логин для входа (например, yourname).

      • Choose a password/Confirm your password: Придумайте надежный пароль. Запомните его! 

    • Ubuntu Pro: Выберите Skip for now (пропустить) .

    • SSH Server: Очень важный шаг! Отметьте пробелом Install OpenSSH server. Это позволит вам управлять сервером удаленно с любого компьютера в сети .

    • Дополнительные пакеты: Ничего не выбирайте, просто нажмите Done.

  5. Завершение: Начнется установка. После ее окончания выберите Reboot Now. При перезагрузке не забудьте извлечь флешку.

Этап 2: Превращаем сервер в хост для Joomla и MQTT

После перезагрузки вы увидите приглашение на вход (login:). Введите имя пользователя и пароль, которые задали при установке.

  1. Первые шаги и обновление системы
    Сразу после входа выполните обновление всех пакетов до актуальных версий. Это стандартная практика безопасности.

    bash
    sudo apt update && sudo apt upgrade -y

    Флаг -y автоматически отвечает "Yes" на запрос подтверждения .

  2. Установка веб-окружения (LAMP-стек)
    Joomla требует веб-сервер, базу данных и PHP. Установим всё одной командой. Пакет unzip понадобится для распаковки Joomla .

    bash
    sudo apt install apache2 mariadb-server php php-mysql php-xml php-mbstring php-curl php-zip php-gd php-intl unzip -y
  3. Настройка базы данных
    Теперь создадим отдельную базу данных и пользователя для Joomla. Это повышает безопасность.

    • Войдите в консоль базы данных:

      bash
      sudo mysql
    • Выполните SQL-команды (замените 'your_password' на ваш надежный пароль):

      sql
      CREATE DATABASE joomla_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
      CREATE USER 'joomla_user'@'localhost' IDENTIFIED BY 'your_password';
      GRANT ALL PRIVILEGES ON joomla_db.* TO 'joomla_user'@'localhost';
      FLUSH PRIVILEGES;
      EXIT;
  4. Скачивание и установка Joomla

    • Перейдите во временную папку и скачайте последнюю версию Joomla с официального сайта. Ссылку на самый свежий архив всегда можно найти на joomla.org. В примере использована Joomla 5.

      bash
      cd /tmp
      wget https://downloads.joomla.org/cms/joomla5/latest/Joomla_5-Stable-Full_Package.zip
    • Создайте целевую папку для сайта и распакуйте архив:

      bash
      sudo mkdir -p /var/www/html/joomla
      sudo unzip Joomla_5-Stable-Full_Package.zip -d /var/www/html/joomla
    • Главный секрет — правильно выставить права доступа, чтобы веб-сервер мог создавать и изменять файлы (например, для загрузки картинок). Владельцем файлов должен быть пользователь веб-сервера www-data .

      bash
      sudo chown -R www-data:www-data /var/www/html/joomla
      sudo chmod -R 755 /var/www/html/joomla
  5. Настройка Apache

    • Создайте файл конфигурации для вашего сайта Joomla:

      bash
      sudo nano /etc/apache2/sites-available/joomla.conf
    • Вставьте в него следующий базовый конфиг (для тестового сервера по IP-адресу, без домена):

      apache
      <VirtualHost *:80>
          ServerAdmin [email protected]
          DocumentRoot /var/www/html/joomla
          ServerName your_server_ip_or_domain
      
          <Directory /var/www/html/joomla>
              Options FollowSymLinks
              AllowOverride All
              Require all granted
          </Directory>
      
          ErrorLog ${APACHE_LOG_DIR}/error.log
          CustomLog ${APACHE_LOG_DIR}/access.log combined
      </VirtualHost>

      Нажмите Ctrl+X, затем Y и Enter для сохранения.

    • Включите созданный сайт и модуль mod_rewrite, который нужен для "человеко-понятных" URL в Joomla, после чего перезагрузите Apache :

      bash
      sudo a2ensite joomla.conf
      sudo a2enmod rewrite
      sudo systemctl reload apache2
  6. Установка Joomla через браузер

    • Теперь откройте браузер на любом компьютере в вашей сети и введите IP-адрес вашего сервера (например, http://192.168.1.10). Вы должны увидеть страницу установщика Joomla.

    • Следуйте инструкциям мастера установки:

      • Выберите язык.

      • Введите название сайта.

      • Данные базы данных: Выберите тип базы данных MySQLi, введите joomla_user, пароль, который вы задали, и имя базы данных joomla_db. Хост базы данных оставьте localhost .

      • Создайте учетную запись администратора (логин и пароль для входа в админку Joomla).

      • Завершите установку.

    • Важно! После завершения установки удалите папку installation на сервере, как того требует программа установки. Это критически важно для безопасности.

      bash
      sudo rm -rf /var/www/html/joomla/installation
  7. Установка MQTT-брокера для телеметрии
    Настала очередь второй задачи. Самый популярный и простой брокер — Mosquitto.

    • Установите его одной командой:

      bash
      sudo apt install mosquitto mosquitto-clients -y
    • После установки сервис mosquitto автоматически запустится и будет работать в фоне. Это минимальная базовая настройка для работы на локальной машине (localhost). Для более тонкой настройки (пароли, внешний доступ) потребуется редактирование файла конфигурации /etc/mosquitto/mosquitto.conf.

Подведем итоги

Поздравляю! Ваш домашний сервер на базе Intel i5 успешно справился с задачами:

  • На нем работает операционная система Ubuntu Server.

  • Запущен веб-сервер Apacheбаза данных и PHP, на которых работает ваша Joomla.

  • В фоне работает MQTT-брокер Mosquitto, готовый принимать сообщения от ваших устройств телеметрии.

Вы проделали отличную работу, настроив всё вручную. Это даст вам огромное преимущество в понимании того, как всё устроено.