Гид по технологиям

Установка Bludit на FreeBSD 12 с Nginx

5 min read DevOps Обновлено 07 Nov 2025
Установка Bludit на FreeBSD 12 с Nginx
Установка Bludit на FreeBSD 12 с Nginx

Введение

Bludit — простой, быстрый и безопасный flat-file CMS (система управления контентом без базы данных). Контент хранится в виде JSON-файлов, поэтому вам нужен только веб‑сервер с поддержкой PHP. Этот пошаговый гид показывает, как установить и настроить Bludit на FreeBSD 12 с использованием Nginx.

Кому подходит этот материал: системным администраторам, DevOps-инженерам и веб-разработчикам, которые хотят развернуть лёгкий блог или сайт без СУБД.

Основные понятия

  • Flat-file CMS: CMS, которая хранит контент в файлах, а не в таблицах базы данных. Это упрощает резервное копирование и перенос.
  • PHP-FPM: процессный менеджер для PHP, обеспечивающий обработку PHP-скриптов через FastCGI.

Требования

  • PHP 5.3 или выше с расширениями: mbstring, gd, dom и json (в нашем примере используется PHP 7.2).
  • Веб‑сервер с поддержкой PHP (Nginx, Apache и т. п.). В этом руководстве — Nginx.
  • Доменное имя (рекомендовано для HTTPS) и открытые порты 80/443.

Предварительные условия

  • Сервер с FreeBSD 12.
  • Пользователь с правами sudo (не root для повседневных действий).

Начальные шаги

Проверьте версию FreeBSD:

uname -ro
# FreeBSD 12.0-RELEASE

Установите часовой пояс:

tzsetup

Обновите систему и установите базовые утилиты:

freebsd-update fetch install
pkg update && pkg upgrade -y
pkg install -y sudo vim unzip wget bash socat git

Важно: всегда обновляйте систему перед установкой сервисов, чтобы иметь последние исправления безопасности.

Шаг 1 — Установить PHP и расширения

Установите PHP и необходимые расширения (пример для PHP 7.2):

sudo pkg install -y php72 php72-ctype php72-curl php72-dom php72-hash php72-iconv php72-gd php72-json php72-mbstring php72-openssl php72-session php72-simplexml php72-xml php72-zip php72-zlib php72-filter php72-ftp php72-tokenizer php72-calendar php72-fileinfo

Проверьте загруженные модули:

php -m

Проверьте версию PHP:

php --version
# Пример: PHP 7.2.x (cli)

Включите и запустите PHP-FPM:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Если у вас другая версия PHP — скорректируйте имена пакетов (php73, php74 и т.д.).

Шаг 2 — Установить acme.sh и получить сертификат Let’s Encrypt (опционально)

HTTPS рекомендуется для защиты данных и улучшения SEO. Acme.sh — лёгкий клиент на shell без внешних зависимостей.

Установка:

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail you@example.com
cd ~

Проверка версии:

/etc/letsencrypt/acme.sh --version
# пример вывода: v2.x.x

Выдача сертификата (замените example.com на ваш домен):

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength ec-256

Сертификаты будут в:

  • RSA: /etc/letsencrypt/example.com
  • ECDSA: /etc/letsencrypt/example.com_ecc

Совет: автоматизируйте продление через cron или systemd‑таймер (acme.sh может установить cron автоматически).

Шаг 3 — Установить и настроить Nginx

Установите Nginx:

sudo pkg install -y nginx
nginx -v

Включите автозапуск и запустите сервис:

sudo sysrc nginx_enable=yes
sudo service nginx start

Создайте файл конфигурации для Bludit:

sudo vim /usr/local/etc/nginx/bludit.conf

Вставьте конфигурацию (обновите пути к сертификатам и server_name):

server {
  listen 80;
  listen 443 ssl;

  ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com/private.key;
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;

  server_name example.com;
  root /usr/local/www/bludit;

  index index.php;

  location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    try_files $fastcgi_script_name =404;
    set $path_info $fastcgi_path_info;
    fastcgi_param PATH_INFO $path_info;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass 127.0.0.1:9000;
  }

  location / {
    try_files $uri $uri/ /index.php?$args;
  }

  location ^~ /bl-content/tmp/ { deny all; }
  location ^~ /bl-content/pages/ { deny all; }
  location ^~ /bl-content/databases/ { deny all; }
}

Добавьте включение конфига в основной nginx.conf в блок http:

include bludit.conf;

Проверьте синтаксис и перезагрузите Nginx:

sudo nginx -t
sudo service nginx reload

Важно: директивы deny выше защищают директории с конфиденциальной информацией Bludit от внешнего доступа.

Шаг 4 — Установить Bludit

Создайте корневую директорию сайта и перейдите в неё:

sudo mkdir -p /usr/local/www/bludit
cd /usr/local/www/bludit

Скачайте и распакуйте релиз (обновите URL при новом релизе):

sudo wget https://www.bludit.com/releases/bludit-3-9-2.zip
sudo unzip bludit-3-9-2.zip
sudo rm bludit-3-9-2.zip
sudo mv bludit-3-9-2/* . && sudo mv bludit-3-9-2/.* .
sudo rmdir bludit-3-9-2

Назначьте владельца веб‑файлов (в FreeBSD пользователь www):

sudo chown -R www:www /usr/local/www/bludit

Перезапустите PHP-FPM:

sudo service php-fpm restart

Шаг 5 — Завершение установки через веб‑мастер

Откройте сайт в браузере (http://example.com или http://IP). Первая страница предложит выбрать язык.

Страница выбора языка установщика Bludit

Создайте пароль для администратора и нажмите «Install».

Форма создания пароля администратора Bludit

После установки вы попадёте на фронтенд сайта.

Фронтенд установленного Bludit

Для доступа в админку добавьте /admin к адресу сайта (пример: https://example.com/admin).

Панель администратора Bludit

Поздравляем — установка завершена.

Проверка работоспособности и отладка

  • 403/404 на статических файлах: проверьте права файлов и root в Nginx.
  • 502 Bad Gateway при обращении к PHP: убедитесь, что php-fpm слушает 127.0.0.1:9000 или используйте unix-сокет и скорректируйте fastcgi_pass.
  • Проблемы с правами записи: проверьте owner и права для bl-content и директорий, где Bludit сохраняет файлы.
  • Логи: /var/log/nginx/error.log и логи PHP-FPM.

Мини‑чеклист проверки:

  • Nginx запущен и проходит nginx -t
  • PHP-FPM запущен и отвечает
  • Права на /usr/local/www/bludit корректны
  • Веб‑страница инсталятора доступна

Безопасность и управление

  • Регулярно обновляйте Bludit и плагины.
  • Ограничьте доступ к /bl-content/databases и другим критичным папкам (Nginx уже блокирует их в конфиге).
  • Используйте HTTPS и HSTS (при настройке SSL добавьте header Strict-Transport-Security).
  • Делайте резервные копии каталога /usr/local/www/bludit и сохраните копии ключей/сертификатов.

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

  • Включите кеширование через плагины Bludit или Nginx microcache при высоких нагрузках.
  • Для больших сайтов используйте быстрые диски и оптимизацию PHP-FPM (настройка pm.max_children, pm.start_servers и т. п.).
  • Проверьте размеры JSON‑файлов страниц; при большом объёме контента учитывайте план по хранению/архивации.

Роли и обязанности (кто что делает)

  • Системный администратор: установка ОС, настройка Nginx/PHP, бэкапы, SSL.
  • Веб‑администратор: управление пользователями Bludit, установка тем и плагинов.
  • Разработчик/DevOps: автоматизация деплоя, CI/CD, мониторинг.

Критерии приёмки

  • Сайт открывается по URL и отображает инсталлятор Bludit.
  • После установки фронтенд и /admin доступны без ошибок.
  • Nginx не возвращает синтаксических ошибок при nginx -t.
  • PHP-FPM обслуживает PHP‑запросы (нет 502/504 при запросах к index.php).

План обновлений (микро-методология)

  1. На тестовом хосте обновите Bludit и плагины.
  2. Проверьте работоспособность front/admin и плагинов.
  3. Сделайте резервную копию продакшн‑каталога и сертификатов.
  4. Обновите продакшн в «окно обслуживания» и проверьте логи.
  5. Откатите при критических ошибках, используя архивную копию.

Частые ошибки и их решения

  • Ошибка прав: chown -R www:www /usr/local/www/bludit
  • Неверный путь к сертификату: проверьте наличие файлов в /etc/letsencrypt
  • Не загружаются плагины: проверьте совместимость версий Bludit и плагинов

Рекомендации по безопасности конкретно для FreeBSD

  • Настройте firewall (pf или ipfw) и разрешите только нужные порты.
  • Обновляйте систему командой freebsd-update и пакеты pkg.
  • Ограничьте SSH доступ по ключам и для конкретных пользователей.

Полезные ссылки

Часто задаваемые вопросы

Q: Можно ли использовать Apache вместо Nginx? A: Да. Bludit совместим с любым веб‑сервером, поддерживающим PHP. Конфигурация виртуального хоста будет отличаться.

Q: Нужно ли настраивать базу данных? A: Нет. Bludit использует JSON‑файлы, база данных не требуется.

Q: Как резервировать сайт? A: Резервируйте каталог /usr/local/www/bludit и директорию с сертификатами (например, /etc/letsencrypt). Также можно экспортировать список плагинов и тем.

Резюме

Bludit — лёгкое и удобное решение для сайтов без СУБД. На FreeBSD 12 установка сводится к установке PHP, настройке PHP-FPM, настройке Nginx и распаковке релиза. Для продакшн‑использования рекомендованы HTTPS, регулярные бэкапы и обновления.

В завершение — проверьте критерии приёмки, настройте резервное копирование и внедрите процедуру обновлений для безопасной эксплуатации.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Herodotus: механизм и защита Android‑трояна
Кибербезопасность

Herodotus: механизм и защита Android‑трояна

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти