Установка и настройка Bludit на FreeBSD 12 с Nginx
Введение
Bludit — простая, быстрая и безопасная flat‑file CMS. Контент хранится в файлах JSON, поэтому не нужна СУБД. Подойдёт для блогов и простых сайтов. Эта статья ориентирована на FreeBSD 12 и Nginx с PHP‑FPM.
Ключевые цели статьи:
- Быстрая установка и настройка рабочего окружения.
- Безопасное развёртывание и базовая защита файловой системы.
- Возможность получить TLS‑сертификаты и настроить автопродление.
Основные требования
- PHP 5.3 или выше с расширениями: mbstring, gd, dom, json и т.д.
- Веб‑сервер с поддержкой PHP (Nginx, Apache и т.п.).
- Система FreeBSD 12 и пользователь с sudo.
Краткая диаграмма процесса
- Обновить систему и установить базовые утилиты.
- Установить PHP и расширения + запустить PHP‑FPM.
- (Опционально) Установить acme.sh и получить сертификаты Let’s Encrypt.
- Установить Nginx и подключить конфигурацию для Bludit.
- Скачать Bludit в корень сайта, выставить права и завершить установку через веб‑мастер.
Предварительные шаги
Проверьте версию 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Важно: работайте не под root, используйте пользователя с sudo для повседневных задач.
Шаг 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
ctype
curl
exif
fileinfo
. . .
. . .Проверьте версию PHP:
php --version
# PHP 7.2.14 (cli) (built: Jan 15 2019 01:14:39) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
# with Zend OPcache v7.2.14, Copyright (c) 1999-2018, by Zend TechnologiesВключите и запустите PHP‑FPM:
sudo sysrc php_fpm_enable=yes
sudo service php-fpm startПримечание: в примерах используется TCP‑порт 9000. Альтернативно можно использовать unix‑сокет, изменив fastcgi_pass в конфигурации Nginx.
Шаг 2 — Установка acme.sh и получение сертификата Let’s Encrypt (опционально)
HTTPS не обязателен, но настоятельно рекомендуется. Acme.sh — лёгкий клиент на shell без внешних зависимостей.
Установка acme.sh:
sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~Проверка версии:
/etc/letsencrypt/acme.sh --version
# v2.8.2Выдача сертификатов RSA и ECDSA:
# 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
Автопродление и развёртывание: используйте встроенные возможности acme.sh, например –installcert с опцией deploy или добавьте cron для регулярной проверки. Пример команды для установки сертификата в Nginx можно найти в документации acme.sh.
Важно: при использовании standalone режим остановите Nginx на время выдачи сертификата или используйте dns‑challenge.
Шаг 3 — Установка и конфигурация Nginx
Установите Nginx:
sudo pkg install -y nginxПроверьте версию:
nginx -v
# nginx version: nginx/1.16.2Запустите и включите автозапуск:
sudo sysrc nginx_enable=yes
sudo service nginx startСоздайте файл конфигурации для Bludit:
sudo vim /usr/local/etc/nginx/bludit.confВставьте (пример):
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; }
}Объяснение ключевых параметров:
- fastcgi_pass — адрес PHP‑FPM. Для unix‑сокета укажите fastcgi_pass unix:/var/run/php-fpm.sock;
- try_files — гарантирует, что запросы без соответствующего файла попадут в index.php;
- deny all для чувствительных директорий защищает JSON‑файлы и временные данные.
Подключите конфигурацию в основной блок http в /usr/local/etc/nginx/nginx.conf, добавив строку:
include bludit.conf;Проверка синтаксиса Nginx и перезагрузка:
sudo nginx -t
sudo service nginx reloadШаг 4 — Установка Bludit
Создайте корень сайта и скачайте релиз:
sudo mkdir -p /usr/local/www/bludit
cd /usr/local/www/bludit
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-2NOTE: обновите URL загрузки, если есть новая версия.
Установите владельца файлов под пользователя веб‑сервера:
sudo chown -R www:www /usr/local/www/bluditПерезапустите PHP‑FPM:
sudo service php-fpm restartШаг 5 — Завершение установки через веб‑мастер
Откройте ваш сайт в браузере. При первом доступе вы увидите страницу выбора языка:

ALT текста: Начальный экран установки Bludit с выбором языка
Создайте пароль для пользователя admin и нажмите “Install”:

ALT текста: Форма создания пароля администратора в установщике Bludit
После установки вы попадёте на главную страницу Bludit:

ALT текста: Главная страница Bludit после успешной установки
Админка доступна по адресу /admin:

ALT текста: Интерфейс панели администратора Bludit
Поздравляем — установка завершена. Проверьте работу сайта и админки.
Рекомендации по безопасности и эксплуатации
- Права на файлы: разрешите только необходимый доступ для веб‑пользователя. Избегайте 777.
- Защитите директории bl-content/tmp, bl-content/pages и bl-content/databases через Nginx (см. пример).
- Регулярно обновляйте Bludit, темы и плагины.
- Настройте резервное копирование папки bl-content, особенно базы JSON и загруженных файлов.
- Мониторьте логи Nginx и PHP‑FPM для подозрительной активности.
Пример простого плана резервного копирования (ежедневно):
- Копировать /usr/local/www/bludit/bl-content/databases и /usr/local/www/bludit/bl-content/uploads в архив.
- Хранить архивы вне сервера или в облачном хранилище.
Автоматическое продление сертификатов acme.sh
Acme.sh обычно ставит cron задачу при установке. Для ручной проверки конфигурации cron или системы периодического запуска проверьте crontab или system cronjobs. Для ручного развёртывания сертификата в Nginx используйте флаг –installcert с acme.sh и укажите команды перезагрузки Nginx.
Отладка и распространённые проблемы
- Страницы возвращают 502/504 — проверьте, запущен ли php-fpm и доступен ли по указанному адресу/сокету.
- Ошибка доступа к файлам — проверьте владельца и права (chown/chmod).
- Сертификаты не выдаются — остановите Nginx при использовании standalone или используйте dns‑challenge.
Роли и чеклист перед запуском (Role‑based checklist)
Администратор сервера:
- Обновил систему и установил пакеты.
- Настроил пользователя с sudo.
- Настроил cron для резервных копий.
Dev/Ops:
- Установил PHP и расширения.
- Настроил PHP‑FPM и проверил соединение с Nginx.
- Настроил Nginx и тесты nginx -t.
Владелец сайта:
- Установил Bludit и создал учетную запись admin.
- Проверил доступ к админке /admin.
- Настроил базовые SEO и плагины по необходимости.
Мини‑методология развёртывания
- Подготовка окружения: обновить систему и установить зависимости.
- Развёртывание приложения: скачать Bludit и настроить права.
- Сеть и безопасность: получить TLS, настроить firewall и Nginx.
- Мониторинг и бэкапы: настроить логи и резервные копии.
Критерии приёмки
- Сайт отвечает по HTTP и/или HTTPS.
- Админка доступна и авторизация работает.
- Nginx и PHP‑FPM работают без ошибок в логах.
- Резервное копирование настроено и протестировано.
Факты и ключевые значения
- Минимальная версия PHP: 5.3 (рекомендуется >=7.2).
- Пример версии Bludit в руководстве: 3.9.2.
- FreeBSD: 12.0.
- Nginx: пример 1.16.2.
Примеры альтернатив и когда этот подход не подходит
- Если нужен сложный сайт с сотнями тысяч записей и транзакциями, выбирайте CMS с СУБД (например, WordPress, Drupal) вместо flat‑file.
- Для совместной командной работы с продвинутой редакторской логикой flat‑file может оказаться ограничением.
- Если вы предпочитаете Apache или другой веб‑сервер, шаги по установке будут отличаться, но общая логика похожа.
Конец и ссылки
Если появятся вопросы — проверьте официальную документацию Bludit и репозиторий на GitHub.
- https://www.bludit.com/
- https://plugins.bludit.com/
- https://themes.bludit.com/
- https://github.com/bludit/bludit
Важно: проверяйте актуальность URL релизов Bludit и версий пакетов.
Резюме: следуя шагам выше, вы подготовите безопасное и простое окружение для Bludit на FreeBSD 12 с Nginx и HTTPS. Начните с базовой установки, затем добавляйте плагины и бэкапы в зависимости от потребностей сайта.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента