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

Установка Bolt CMS на FreeBSD 12 с Nginx и MySQL

• 5 min read • Инструкции • Обновлено 23 Nov 2025
Bolt CMS на FreeBSD 12: Nginx и MySQL
Bolt CMS на FreeBSD 12: Nginx и MySQL

Важное: если вы хотите минимальную конфигурацию, можно заменить MySQL на SQLite для локальной разработки или использовать Apache вместо Nginx для знакомых конфигураций.

Логотип Bolt CMS

Кратко о Bolt

Bolt — лёгкая и простая в использовании система управления контентом (CMS) на PHP. Выпускается под открытой лицензией MIT, исходный код доступен на GitHub. Bolt ориентирован на быстрый запуск сайтов с современным HTML5-разметкой и удобными шаблонами.

Что будет в этой инструкции

  • Подготовка FreeBSD 12 и базовые пакеты
  • Установка и базовая настройка MySQL
  • Установка PHP и расширений, запуск PHP-FPM
  • (Опционально) получение TLS-сертификатов через acme.sh и Let’s Encrypt
  • Установка Nginx и конфигурация виртуального хоста для Bolt
  • Установка Bolt, права доступа, финальная настройка
  • Дополнительно: безопасность, проверки, альтернативные варианты и чеклисты

Требования

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

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

  • FreeBSD 12
  • Нерутовый пользователь с правами sudo

Начальные шаги

Проверьте версию 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

Шаг 1 — Установка MySQL и создание базы для Bolt

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

Установка MySQL:

sudo pkg install -y mysql57-server

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

mysql --version  
# mysql  Ver 14.14 Distrib 5.7.27, for FreeBSD12.0 (amd64) using  EditLine wrapper

Включите и запустите сервис:

sudo sysrc mysql_enable="yes"  
sudo service mysql-server start

Запустите скрипт безопасности:

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

Подключитесь как root и создайте базу и пользователя (замените имена и пароль):

sudo mysql -u root -p  
# Enter password

CREATE DATABASE dbname;  
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';  
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';  
FLUSH PRIVILEGES;

Выйдите: exit

Шаг 2 — Установка 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-pdo php72-pdo_mysql php72-mysqli php72-filter php72-ftp php72-tokenizer php72-calendar php72-pecl-APCu php72-opcache php72-sqlite3 php72-pdo_sqlite php72-intl php72-posix

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

php --version

# PHP 7.2.22 (cli) (built: Sep 7 2019 01:12:40) ( NTS )
# Zend Engine v3.2.0, ...

Включите и запустите PHP-FPM:

sudo sysrc php_fpm_enable=yes  
sudo service php-fpm start

Совет: для production используйте поддерживаемую версию PHP 7.4/8.x и обновлённые расширения.

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

HTTPS рекомендуется для всех сайтов. Acme.sh — лёгкий клиент для получения сертификатов.

sudo pkg install -y acme.sh

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

acme.sh --version  
# v2.8.2

Получение RSA и ECDSA сертификатов (пример для example.com):

# RSA  
sudo acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength 2048  
# ECDSA  
sudo acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength ec-256

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

  • RSA: /etc/letsencrypt/example.com
  • ECC: /etc/letsencrypt/example.com_ecc

Важно: acme.sh запускает временный standalone-сервер на 80/443. Остановите Nginx временно при необходимости или используйте вебroot/серверный метод.

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

Установка Nginx (mainline):

sudo pkg install -y nginx-devel

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

nginx -v
# nginx version: nginx/1.17.1

Включите и запустите сервис:

sudo sysrc nginx_enable=yes  
sudo service nginx start

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

sudo vim /usr/local/etc/nginx/bolt.conf

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

server {  
  listen 80;  
  listen 443 ssl;  
  server_name example.com;  
  root /usr/local/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 fastcgi_params;  
    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 127.0.0.1:9000;  
  }  
}

Примечание: для production-конфигурации дополнительно настройте заголовки безопасности, HSTS, OCSP stapling (если уместно) и корректные cipher suites. Подробный шаблон и рекомендации: https://docs.bolt.cm/3.6/installation/webserver/nginx.

Включите файл в основной конфиг Nginx:

sudo vim /usr/local/etc/nginx/nginx.conf

Добавьте в блок http {}:

include bolt.conf;

Проверка конфигурации и перезагрузка:

sudo nginx -t
sudo service nginx reload

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

Создайте директорий для сайтов и скачайте Bolt:

sudo mkdir -p /usr/local/www
cd /usr/local/www
sudo wget https://bolt.cm/distribution/bolt-latest.zip && sudo unzip bolt-latest.zip
sudo rm bolt-latest.zip

Переименуйте папку релиза (пример для v3.6.10):

sudo mv bolt-v3.6.10 bolt
cd /usr/local/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

Установите владельца веб-файлов в пользователя веб-сервера (www):

sudo chown -R www:www /usr/local/www/bolt

Откройте сайт в браузере и следуйте инструкциям установщика.

Шаг 6 — Завершение установки и создание первого пользователя

После первого открытия сайта установщик Bolt предложит создать администратора.

Страница создания первого администратора Bolt CMS

Заполните поля и нажмите кнопку для создания первого пользователя. После успешного создания вы увидите панель администратора:

Панель администратора Bolt CMS

Панель Bolt доступна по адресу: https://example.com/bolt (замените example.com на ваш домен или IP).


Рекомендации по безопасности и эксплуатации

  • Права файлов: ограничьте права доступа к конфигурационным файлам, секретам и директории app/cache и app/config только пользователю веб-сервера.
  • Резервное копирование: регулярно бэкапьте базу данных и директорию files и config.
  • Обновления: обновляйте PHP, расширения, Bolt и зависимости через Composer/пакеты.
  • HTTPS: используйте TLS (Let’s Encrypt) и настройте автоматическое продление сертификатов.
  • Заголовки безопасности: добавьте Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy.

Мини-SOP: резервное копирование и откат (rollback)

  1. Перед обновлением создайте дамп базы:
mysqldump -u username -p dbname > /root/dbname-$(date +%F).sql
  1. Скопируйте директорию сайта:
sudo tar czf /root/bolt-backup-$(date +%F).tar.gz -C /usr/local/www bolt
  1. Если нужно откатиться, остановите сервисы, распакуйте архив и восстановите дамп:
sudo service nginx stop
sudo service php-fpm stop
sudo tar xzf /root/bolt-backup-YYYY-MM-DD.tar.gz -C /usr/local/www
mysql -u username -p dbname < /root/dbname-YYYY-MM-DD.sql
sudo service php-fpm start
sudo service nginx start

Чеклист ролей (кто за что отвечает)

  • Сисадмин: установка пакетов, настройка сервисов, безопасность сервера.
  • Веб-разработчик: тема, шаблоны Twig, подключение внешних библиотек, Composer.
  • Контент-менеджер: наполнение контентом в админке Bolt, тестирование шаблонов.

Альтернативные варианты и когда их выбрать

  • SQLite: для локальной разработки и небольших сайтов — быстро и без отдельного сервера БД.
  • PostgreSQL: если нужна продвинутая работа с транзакциями и расширенные возможности SQL.
  • Apache: если вы уже используете Apache и знакомы с .htaccess.

Советы по совместимости и миграции

  • Bolt v3 требует PHP >= 5.5.9, но для безопасности используйте поддерживаемую ветку PHP 7.4/8.x.
  • При миграции базы данных между MySQL и PostgreSQL проверьте совместимость SQL-запросов и кодировки.

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

  • Сайт отвечает на HTTP/HTTPS запросы и возвращает код 200 на главную страницу.
  • Админ-панель доступна по /bolt и вход администратора работает.
  • Запись и чтение контента в базе проходят без ошибок.
  • SSL корректно настроен и сертификаты не просрочены.

Тестовые проверки (acceptance / health checks)

  • Проверка PHP-FPM: ps aux | grep php-fpm и логов.
  • Nginx: sudo nginx -t и sudo service nginx status.
  • MySQL: подключение и простой SELECT/INSERT.
  • Проверка URL /bolt, вход в панель, создание тестовой записи.

Таблица совместимости (ключевые элементы)

  • PHP: рекомендуемые версии 7.2–7.4/8.x (обновляйте в соответствии с поддержкой Bolt и расширений).
  • MySQL: 5.7 (пример); MariaDB совместима.
  • Nginx: любая актуальная основная ветка.

Короткая методология развертывания (четыре шага)

  1. Подготовка сервера и пакетов (обновления, sudo, утилиты).
  2. Установка и настройка БД и PHP-FPM.
  3. Конфигурация веб-сервера и TLS.
  4. Развертывание Bolt и проверка работоспособности.

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


Короткое резюме

Bolt CMS легко разворачивается на FreeBSD 12 при соблюдении простых шагов: подготовка системы, установка MySQL, PHP-FPM, Nginx, (опционально) TLS через acme.sh и стандартная установка Bolt. Не забудьте про права доступа, регулярные бэкапы и настройку заголовков безопасности.

Поделиться: 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 быстро