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

Установка Bolt CMS на Fedora 29 с Nginx и MariaDB

7 min read CMS Обновлено 25 Nov 2025
Установка Bolt CMS на Fedora 29 (Nginx + MariaDB)
Установка Bolt CMS на Fedora 29 (Nginx + MariaDB)

Bolt — лёгкая и современная CMS на PHP. В этой пошаговой инструкции показано, как установить Bolt на Fedora 29 с Nginx и MariaDB, опционально настроить TLS через acme.sh и Let’s Encrypt. Следуйте шагам по подготовке системы, установке PHP, базы данных, веб-сервера и финальной настройке Bolt.

Введение

Логотип Bolt CMS

Bolt — это простая, лёгкая и функциональная CMS, написанная на PHP и доступная по лицензии MIT. Исходный код хранится в открытом репозитории на GitHub. Bolt ориентирован на быструю настройку, понятную конфигурацию и элегантные шаблоны. Он хорошо подходит для сайтов на HTML5 с современными разметками и использует актуальные open-source библиотеки.

В этом руководстве мы пройдём процесс установки Bolt на систему Fedora 29, используя Nginx как веб-сервер и MariaDB как СУБД. Опционально рассмотрим получение сертификатов от Let’s Encrypt с помощью acme.sh.

TL;DR — что вы получите

  • Рабочий сайт на Bolt CMS, обслуживаемый Nginx.
  • MariaDB как база данных и PHP-FPM для обработки PHP.
  • Опциональная поддержка HTTPS через acme.sh и Let’s Encrypt.

Что важно знать заранее

Важно: команда выполняется от пользователя с sudo. Следуйте принципам на тестовой машине перед развёртыванием в продакшн. В примерах используются имена типа example.com — замените их на ваши домены и учётные данные.

Требования

Системные требования Bolt не строгие, но необходимы современные компоненты:

  • PHP 5.5.9 или новее с расширениями: pdo, mysqlnd/pgsql, openssl, curl, gd, intl, json, mbstring, opcache, posix, xml, fileinfo, exif, zip.
  • Доступ к SQLite (входит в PHP) или MySQL / PostgreSQL / MariaDB.
  • Веб-сервер: Apache с mod_rewrite (для .htaccess) или Nginx.
  • Минимум 32 МБ памяти, выделенной PHP (рекомендуется больше для реальных сайтов).

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

  • Fedora 29.
  • Неразовый пользователь с правами sudo.

Шаг 0 — подготовка системы

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

cat /etc/fedora-release  
# Fedora release 29 (Twenty Nine)

Установите время и временную зону:

timedatectl list-timezones  
sudo timedatectl set-timezone 'Region/City'

Обновите пакеты системы:

sudo dnf check-update; 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-zip php-pgsql php-sqlite3 php-curl php-gd php-mysqlnd php-intl php-json php-opcache php-xml php-process

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

php -m  
  
ctype  
curl  
exif  
fileinfo  
. . .  
. . .

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

php --version  
  
# PHP 7.2.14 (cli) (built: Jan  8 2019 09:59:17) ( NTS )  
# Copyright (c) 1997-2018 The PHP Group  
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies  
#     with Zend OPcache v7.2.14, Copyright (c) 1999-2018, by Zend Technologies  

Запустите и включите сервис PHP-FPM:

sudo systemctl start php-fpm.service  
sudo systemctl enable php-fpm.service

Шаг 2 — установка MariaDB и создание базы для Bolt

Bolt поддерживает MySQL, MariaDB и PostgreSQL. Здесь используем MariaDB.

Установка MariaDB:

sudo dnf install -y mariadb-server

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

mysql --version  
# mysql  Ver 15.1 Distrib 10.3.11-MariaDB, for Linux (x86_64) using readline 5.1

Запустите и включите службу MariaDB:

sudo systemctl start mariadb.service  
sudo systemctl enable mariadb.service

Улучшите безопасность и задайте пароль для root:

sudo mysql_secure_installation

Примерный интерактивный блок (введите свои ответы):

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Подключитесь к MariaDB как root:

sudo mysql -u root -p  
# Enter password  

Создайте базу и пользователя для Bolt (замените dbname/username/password):

MariaDB> CREATE DATABASE dbname;  
MariaDB> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';  
MariaDB> FLUSH PRIVILEGES;

Выйдите из MariaDB:

MariaDB> exit

Запишите учетные данные — они понадобятся при установке Bolt.

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

HTTPS не обязателен, но рекомендуется. Для получения бесплатных сертификатов используем acme.sh — клиент на shell без зависимостей.

Установка acme.sh:

sudo su - root  
git clone https://github.com/Neilpang/acme.sh.git  
cd acme.sh   
./acme.sh --install --accountemail [email protected]  
source ~/.bashrc  
cd ~

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

acme.sh --version  
# v2.8.1

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

# RSA 2048  
acme.sh --issue --standalone -d example.com --keylength 2048  
# ECDSA  
acme.sh --issue --standalone -d example.com --keylength ec-256

Для тестирования используйте флаг –staging.

По завершении вы найдёте сертификаты в домашней директории пользователя, например:

  • RSA: /home/username/example.com
  • ECC: /home/username/example.com_ecc

Просмотреть список выданных сертификатов:

acme.sh --list

Создайте каталоги для хранения сертификатов (здесь используем /etc/letsencrypt):

mkdir -p /etc/letsecnrypt/example.com  
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Установите (скопируйте) сертификаты в /etc/letsencrypt и настройте автоматическую перезагрузку Nginx после обновления:

# RSA  
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"  
# ECC/ECDSA  
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Сертификаты автоматически обновляются клиентом acme.sh.

По окончании вернитесь к обычному sudo-пользователю:

exit

Примечание: в командах выше пути и домены — примеры. Подставляйте ваши значения.

Шаг 4 — установка и конфигурация Nginx для Bolt

Если вы предпочитаете Apache, официальная документация Bolt описывает и эту опцию (https://docs.bolt.cm/3.6/installation/webserver/apache).

Установка Nginx:

sudo dnf install -y nginx

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

nginx -v  
# nginx version: nginx/1.14.1

Запуск и включение:

sudo systemctl start nginx.service  
sudo systemctl enable nginx.service

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

sudo vim /etc/nginx/conf.d/bolt.conf  

Вставьте следующую конфигурацию (скорректируйте server_name и пути):

server {  
  
  listen 80;  
  listen 443 ssl http2;  
  server_name example.com;  
  root /var/www/bolt/public;  
  index index.php;  
  
  # RSA  
  ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;  
  ssl_certificate_key /etc/letsencrypt/example.com/private.key;  
  # ECC  
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;  
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;  
  
  location / {  
    try_files $uri $uri/ /index.php?$query_string;  
  }  
  
  location = /bolt {  
    try_files $uri /index.php?$query_string;  
  }  
  
  location ^~ /bolt/ {  
    try_files $uri /index.php?$query_string;  
  }  
  
  location ~ /index.php/(.*) {  
    rewrite ^/index.php/(.*) /$1 permanent;  
  }  
  
  location ~ /\. { deny all; }  
  location ~ /\.(htaccess|htpasswd)$ { deny all; }  
  location ~ /\.(?:db)$ { deny all; }  
  location ~* /(.*)\.(?:markdown|md|twig|yaml|yml)$ { deny all; }  
  
  location ~ [^/]\.php(/|$) {  
    include default.d/php.conf;  
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;  
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
    fastcgi_param HTTP_PROXY "";  
    fastcgi_param HTTPS $https if_not_empty;  
    fastcgi_pass unix:/run/php-fpm/www.sock;  
  }  
  
}

Примечание: полная и production-готовая конфигурация доступна в официальной документации: https://docs.bolt.cm/3.6/installation/webserver/nginx

Проверьте синтаксис Nginx:

sudo nginx -t

Перезагрузите сервис:

sudo systemctl reload nginx.service

Шаг 5 — установка Bolt CMS

Создайте директорию /var/www и загрузите дистрибутив Bolt:

sudo mkdir -p /var/www/

Перейдите в /var/www:

cd /var/www/

Скачайте и распакуйте последнюю сборку Bolt:

sudo wget https://bolt.cm/distribution/bolt-latest.zip && sudo unzip bolt-latest.zip  

Удалите архив:

sudo rm bolt-latest.zip  

В примере папка распаковки имеет имя версии, переименуйте её в bolt:

sudo mv bolt-v3.6.4 bolt

Перейдите в корень сайта:

cd /var/www/bolt

Переименуйте шаблонные конфигурационные файлы:

sudo mv .bolt.yml.dist .bolt.yml  
sudo mv composer.json.dist composer.json  
sudo mv composer.lock.dist composer.lock  
sudo mv src/Site/CustomisationExtension.php.dist src/Site/CustomisationExtension.php

Назначьте владельца файлов (в примере nginx):

sudo chown -R nginx:nginx /var/www/bolt

Отредактируйте конфигурацию PHP-FPM, чтобы процессы запускал nginx. Откройте /etc/php-fpm.d/www.conf и установите user и group в nginx:

sudo vim /etc/php-fpm.d/www.conf  
# user = nginx  
# group = nginx

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

sudo systemctl restart php-fpm.service

Перейдите в браузере по адресу вашего сайта и продолжите установку через веб-интерфейс.

Шаг 6 — завершение установки через веб-интерфейс

После открытия сайта вы должны увидеть мастер установки Bolt:

Мастер установки Bolt CMS

Заполните данные для первого пользователя и нажмите кнопку Create the first user. После этого откроется админ-панель:

Панель управления Bolt CMS

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

Альтернативные подходы и рекомендации

  • Apache вместо Nginx: если вы привыкли к Apache и .htaccess, используйте официальный Apache-конфиг из документации Bolt.
  • SQLite для простых сайтов или тестирования: можно обойтись без MariaDB и использовать SQLite, чтобы ускорить развёртывание на локальной машине.
  • Docker: для повторяемых развёртываний используйте контейнеры (PHP-FPM + Nginx + MariaDB). Это обеспечивает переносимость и упрощает CI/CD.

Когда это не подходит

  • Большие сайты с высокой нагрузкой: Bolt подходит для малых и средних сайтов; для крупных проектов рассмотрите CMS с горизонтальным масштабированием.
  • Специфичные enterprise-интеграции: если нужен сложный RBAC или встроенные ERP-соединения, вероятно потребуется кастомная разработка.

Памятка по безопасности

  • Держите PHP и все пакеты обновлёнными.
  • Настройте firewall и ограничьте доступ по SSH.
  • Не храните секреты в репозитории.
  • Закройте каталоги и файлы конфигураций Nginx (директивы deny в примере).
  • Настройте автоматическое обновление сертификатов и мониторинг успешного обновления.

Роль на проектах — кто за что отвечает

  • DevOps/Системный администратор: настройка сервера, Nginx, TLS, резервное копирование и восстановление.
  • Backend-разработчик: настройка PHP-FPM, расширений, интеграция с базой данных.
  • Веб-разработчик/Frontend: шаблоны Twig, разметка, оптимизация ресурсов.
  • Контент-менеджер: заполнение контента, управление медиа и пользователями.

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

  1. Сайт корректно отвечает по HTTP и HTTPS (если настроено).
  2. Админ-панель доступна по /bolt и позволяет создать запись.
  3. Данные сохраняются в выбранной базе (MariaDB/SQLite).
  4. Nginx конфигурация проходит проверку синтаксиса nginx -t.
  5. Логи ошибок PHP и Nginx не содержат критичных ошибок при базовом использовании.

Проверочный список для развертывания (SOP)

  1. Обновить систему: sudo dnf update -y.
  2. Установить PHP и расширения, запустить php-fpm.
  3. Установить MariaDB, выполнить mysql_secure_installation, создать БД.
  4. Установить Nginx, создать конфиг для сайта, проверить nginx -t.
  5. (Опционально) Установить acme.sh и получить сертификат.
  6. Развернуть Bolt в /var/www/bolt, назначить права и настроить PHP-FPM.
  7. Перейти в веб-интерфейс, завершить установку и создать первого пользователя.

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

  • Откройте https://example.com — должен отображаться сайт Bolt.
  • Перейдите на https://example.com/bolt — должна открыться админ-панель.
  • Создайте тестовую запись — проверьте запись в базе.

Короткий глоссарий

  • PHP-FPM — FastCGI Process Manager для обработки PHP-запросов.
  • Nginx — лёгкий и быстрый HTTP-сервер и reverse-proxy.
  • acme.sh — клиент для получения TLS/SSL через ACME-протокол.
  • Let’s Encrypt — бесплатный центр сертификации (CA).

Частые проблемы и решения

  • 502 Bad Gateway: проверьте, запущен ли php-fpm и правильно ли указан сокет fastcgi_pass.
  • Ошибка доступа к файлам: проверьте владельца и права на /var/www/bolt.
  • Сертификат не применился: проверьте пути сертификатов в конфиге Nginx и перезагрузите сервис.

Локализация и варианты для продакшн

  • В продакшне используйте отдельного пользователя для запуска сервисов и минимизируйте права на файловую систему.
  • Настройте резервные копии базы данных и файлов Bolt (минимум ежедневные бэкапы).
  • Включите мониторинг сервисов (systemd, Nginx, MariaDB) и визуализацию логов.

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

Итог

Bolt CMS позволяет быстро развернуть современный сайт при минимальной настройке. На Fedora 29 процесс включает установку PHP, MariaDB и Nginx, а также опциональную настройку HTTPS. Следуйте шагам, тестируйте и обеспечьте базовую безопасность и резервное копирование.

Важно: всегда заменяйте примеры (domain, dbname, username, password) на реальные значения и тестируйте конфигурации в контролируемой среде перед отдачей в продакшн.

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

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство