Установка 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). Первая страница предложит выбрать язык.

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

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

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

Поздравляем — установка завершена.
Проверка работоспособности и отладка
- 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).
План обновлений (микро-методология)
- На тестовом хосте обновите Bludit и плагины.
- Проверьте работоспособность front/admin и плагинов.
- Сделайте резервную копию продакшн‑каталога и сертификатов.
- Обновите продакшн в «окно обслуживания» и проверьте логи.
- Откатите при критических ошибках, используя архивную копию.
Частые ошибки и их решения
- Ошибка прав: chown -R www:www /usr/local/www/bludit
- Неверный путь к сертификату: проверьте наличие файлов в /etc/letsencrypt
- Не загружаются плагины: проверьте совместимость версий Bludit и плагинов
Рекомендации по безопасности конкретно для FreeBSD
- Настройте firewall (pf или ipfw) и разрешите только нужные порты.
- Обновляйте систему командой freebsd-update и пакеты pkg.
- Ограничьте SSH доступ по ключам и для конкретных пользователей.
Полезные ссылки
- https://www.bludit.com/
- https://plugins.bludit.com/
- https://themes.bludit.com/
- https://github.com/bludit/bludit
Часто задаваемые вопросы
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, регулярные бэкапы и обновления.
В завершение — проверьте критерии приёмки, настройте резервное копирование и внедрите процедуру обновлений для безопасной эксплуатации.
Похожие материалы
Herodotus: механизм и защита Android‑трояна
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить