Установка Bludit на Fedora 30 с NGINX
Требования
Убедитесь, что ваша система соответствует минимальным требованиям:
- PHP 5.3 или новее с расширениями: mbstring, gd, dom и JSON. Рекомендуется PHP 7.2+ для лучшей производительности.
- Веб‑сервер с поддержкой PHP: NGINX (этот гайд), Apache, Lighttpd или H2O.
- Доступ к системе с правами sudo у обычного пользователя.
Краткое определение: Flat‑file CMS — система управления сайтом, которая хранит контент в файлах (например, JSON), без необходимости БД.
Предварительные условия
- Рабочая система Fedora 30.
- Непользователь root: пользователь с правами sudo.
Важно: делайте резервные копии конфигураций перед изменениями.
Первые шаги
Проверьте версию Fedora:
cat /etc/fedora-release
# Fedora release 30 (Thirty)Установите часовой пояс:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'Обновите систему:
sudo dnf update -yУстановите полезные утилиты:
sudo dnf install -y curl wget vim git unzip socat bash-completionШаг 1 — Установка PHP
Установите PHP и необходимые расширения:
sudo dnf install -y php-cli php-fpm php-common php-mbstring php-gd php-xml php-jsonПроверка установленных модулей PHP:
php -m
ctype
curl
exif
fileinfo
. . .Проверьте версию PHP:
php --version
# PHP 7.3.0 (cli) (built: Jan 12 2019 12:47:33) ( NTS )Запустите и включите сервис php-fpm:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.serviceШаг 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.0Получение сертификатов для домена (пример):
# 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
Важно: при использовании реального домена замените example.com на ваш домен.
Шаг 3 — Установка и настройка NGINX
Установка из репозитория Fedora:
sudo dnf install -y nginxПроверка версии NGINX:
nginx -v
# nginx version: nginx/1.16.0Запустите и включите сервис NGINX:
sudo systemctl start nginx.service
sudo systemctl enable nginx.serviceСоздайте конфигурацию для Bludit:
sudo vim /etc/nginx/conf.d/bludit.confПример содержимого конфигурации NGINX (адаптируйте пути и домен):
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 /var/www/bludit;
index index.php;
location ~ \\.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
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:
sudo nginx -tПерезагрузите NGINX:
sudo systemctl reload nginx.serviceШаг 4 — Установка Bludit
Создайте корневую директорию для сайта:
sudo mkdir -p /var/www/bluditИзмените владельца на вашего пользователя:
sudo chown -R [your_user]:[your_user] /var/www/bluditЗамените [your_user] на имя вашего пользователя.
Перейдите в директорию:
cd /var/www/bluditСкачайте и распакуйте релиз (обновите URL при необходимости):
wget https://www.bludit.com/releases/bludit-3-8-1.zip
unzip bludit-3-8-1.zip
rm bludit-3-8-1.zip
mv bludit-3-8-1/* . && mv bludit-3-8-1/.* .
rmdir bludit-3-8-1Назначьте правильного владельца (nginx):
sudo chown -R nginx:nginx /var/www/bluditОткройте конфигурацию PHP‑FPM и поменяйте пользователя и группу на nginx:
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginxПерезапустите PHP‑FPM:
sudo systemctl restart php-fpm.serviceШаг 5 — Завершение установки через веб‑мастер
Откройте в браузере ваш сайт. Вы будете перенаправлены на установщик Bludit. Например, сначала выбираете язык:

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

После создания учётных данных вы попадёте на фронтенд:

Админка доступна по адресу https://example.com/admin или https://

Установка завершена. Удачного блогинга!
Критерии приёмки
Проверьте, что:
- Главная страница сайта доступна по HTTP/HTTPS.
- Админка доступна по /admin и вы можете войти под созданным администратором.
- Страницы постов сохраняются и отображаются корректно.
- Защищён доступ к директориям bl-content/tmp, bl-content/pages и bl-content/databases.
Контрольные списки по ролям
Контрольный список для администратора сайта:
- Убедиться в работоспособности входа в админку.
- Настроить базовые плагины и тему.
- Регулярно обновлять Bludit и плагины.
- Делать резервные копии каталога bl-content.
Контрольный список для DevOps:
- Настроить systemd‑юниты для nginx и php-fpm.
- Настроить автоматическое обновление сертификатов (см. playbook ниже).
- Настроить логи и ротацию (logrotate).
- Настроить firewall и SELinux профили при необходимости.
Playbook: автопродление сертификата acme.sh
Мини‑план для автоматизации продления сертификатов:
- Добавить cron или systemd timer для acme.sh:
# пример crontab для обновления каждодневно
0 3 * * * /etc/letsencrypt/acme.sh --cron --home /etc/letsencrypt >/dev/null- После успешного обновления перезагружать NGINX:
/etc/letsencrypt/acme.sh --install-cert -d example.com \
--cert-file /etc/letsencrypt/example.com/fullchain.pem \
--key-file /etc/letsencrypt/example.com/private.key \
--reloadcmd "sudo systemctl reload nginx"- Проверять expiry с помощью openssl или acme.sh –list.
Безопасность и жёсткая настройка
Рекомендации для повышения безопасности:
- Отключите доступ к директориям bl-content, которые не должны быть публичными (см. конфигурацию NGINX выше).
- Устанавливайте минимально необходимые права на файлы и каталоги. Рекомендуется 750 для каталогов и 640 для файлов, владелец nginx.
- Ограничьте доступ к SSH и используйте ключи.
- Включите HTTPS и HSTS при готовом сайте.
- Регулярно обновляйте PHP, NGINX и систему.
Примечание: при включённом SELinux убедитесь, что контент имеет правильный контекст (chcon или semanage fcontext).
Отладка и типичные проблемы
- Ошибка 502 Bad Gateway
- Проверьте статус php-fpm: sudo systemctl status php-fpm.service
- Проверьте путь сокета в конфигурации fastcgi_pass. По умолчанию: unix:/run/php-fpm/www.sock
- Ошибка прав на файлы
- Убедитесь, что владелец /var/www/bludit установлен на nginx: sudo chown -R nginx:nginx /var/www/bludit
- Сертификат не найден
- Проверьте правильность путей в ssl_certificate и ssl_certificate_key.
- Страницы возвращают 404
- Проверьте блок try_files в конфигурации NGINX и права на индексный файл index.php.
Тесты и критерии приёмки
- Тест входа в админку: открыть /admin, ввести данные, успешный редирект.
- Тест записи: создать запись, подтвердить появление на сайте.
- Тест HTTPS: открыть сайт по HTTPS, проверить срок действия сертификата.
Советы по миграции и совместимости
- Bludit хранит контент в JSON; миграция на другую платформу потребует парсинга этих файлов.
- Для PHP: версии 7.2+ дают лучшее быстродействие и поддержку современных расширений.
Альтернативные подходы
- Если вы предпочитаете Apache, настройка виртуального хоста и PHP‑FPM будет аналогична, но с использованием модулей Apache.
- Для автоматического деплоя сайта рассмотрите Ansible playbook для Fedora, который выполняет все шаги централизованно.
Частые вопросы
Какие минимальные версии PHP поддерживает Bludit?
Минимум PHP 5.3, но лучше использовать PHP 7.2 или новее.
Как автоматически продлевать сертификаты Let’s Encrypt?
Используйте acme.sh с cron или systemd timer и настройте –reloadcmd, чтобы перезагружать NGINX после обновления.
Какие каталоги должны быть недоступны из интернета?
bl-content/tmp, bl-content/pages и bl-content/databases должны быть закрыты через NGINX.
Полезные ссылки
- https://www.bludit.com/
- https://plugins.bludit.com/
- https://themes.bludit.com/
- https://github.com/bludit/bludit
Итог
Bludit — лёгкая flat‑file CMS, которую легко развернуть на Fedora 30 с NGINX и PHP‑FPM. Следуйте шагам по установке PHP, настройке NGINX, установке Bludit и (опционально) получению сертификата через acme.sh. Включённые контрольные списки и плейбуки помогут автоматизировать и поддерживать сайт в рабочем состоянии.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента