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

Установка Bludit на Fedora 30 с NGINX

• 5 min read • CMS • Обновлено 16 Nov 2025
Установка Bludit на Fedora 30 и NGINX
Установка 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. Например, сначала выбираете язык:

Установщик Bludit: выбор языка

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

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

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

Приветствие Bludit после установки

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

Панель управления Bludit в браузере

Установка завершена. Удачного блогинга!

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

Проверьте, что:

  • Главная страница сайта доступна по 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

Мини‑план для автоматизации продления сертификатов:

  1. Добавить cron или systemd timer для acme.sh:
# пример crontab для обновления каждодневно
0 3 * * * /etc/letsencrypt/acme.sh --cron --home /etc/letsencrypt >/dev/null
  1. После успешного обновления перезагружать 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"
  1. Проверять expiry с помощью openssl или acme.sh –list.

Безопасность и жёсткая настройка

Рекомендации для повышения безопасности:

  • Отключите доступ к директориям bl-content, которые не должны быть публичными (см. конфигурацию NGINX выше).
  • Устанавливайте минимально необходимые права на файлы и каталоги. Рекомендуется 750 для каталогов и 640 для файлов, владелец nginx.
  • Ограничьте доступ к SSH и используйте ключи.
  • Включите HTTPS и HSTS при готовом сайте.
  • Регулярно обновляйте PHP, NGINX и систему.

Примечание: при включённом SELinux убедитесь, что контент имеет правильный контекст (chcon или semanage fcontext).

Отладка и типичные проблемы

  1. Ошибка 502 Bad Gateway
  • Проверьте статус php-fpm: sudo systemctl status php-fpm.service
  • Проверьте путь сокета в конфигурации fastcgi_pass. По умолчанию: unix:/run/php-fpm/www.sock
  1. Ошибка прав на файлы
  • Убедитесь, что владелец /var/www/bludit установлен на nginx: sudo chown -R nginx:nginx /var/www/bludit
  1. Сертификат не найден
  • Проверьте правильность путей в ssl_certificate и ssl_certificate_key.
  1. Страницы возвращают 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.

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

Итог

Bludit — лёгкая flat‑file CMS, которую легко развернуть на Fedora 30 с NGINX и PHP‑FPM. Следуйте шагам по установке PHP, настройке NGINX, установке Bludit и (опционально) получению сертификата через acme.sh. Включённые контрольные списки и плейбуки помогут автоматизировать и поддерживать сайт в рабочем состоянии.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро