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

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:

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

Для доступа в админку добавьте /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, разметка, оптимизация ресурсов.
- Контент-менеджер: заполнение контента, управление медиа и пользователями.
Критерии приёмки
- Сайт корректно отвечает по HTTP и HTTPS (если настроено).
- Админ-панель доступна по /bolt и позволяет создать запись.
- Данные сохраняются в выбранной базе (MariaDB/SQLite).
- Nginx конфигурация проходит проверку синтаксиса nginx -t.
- Логи ошибок PHP и Nginx не содержат критичных ошибок при базовом использовании.
Проверочный список для развертывания (SOP)
- Обновить систему: sudo dnf update -y.
- Установить PHP и расширения, запустить php-fpm.
- Установить MariaDB, выполнить mysql_secure_installation, создать БД.
- Установить Nginx, создать конфиг для сайта, проверить nginx -t.
- (Опционально) Установить acme.sh и получить сертификат.
- Развернуть Bolt в /var/www/bolt, назначить права и настроить PHP-FPM.
- Перейти в веб-интерфейс, завершить установку и создать первого пользователя.
Простая проверка после установки
- Откройте 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) и визуализацию логов.
Полезные ссылки
- https://bolt.cm/
- https://github.com/bolt/bolt
- Официальная документация Nginx и PHP-FPM
Итог
Bolt CMS позволяет быстро развернуть современный сайт при минимальной настройке. На Fedora 29 процесс включает установку PHP, MariaDB и Nginx, а также опциональную настройку HTTPS. Следуйте шагам, тестируйте и обеспечьте базовую безопасность и резервное копирование.
Важно: всегда заменяйте примеры (domain, dbname, username, password) на реальные значения и тестируйте конфигурации в контролируемой среде перед отдачей в продакшн.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone