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

Установка и настройка Bolt CMS на Debian 9 (LAMP)

9 min read CMS Обновлено 23 Nov 2025
Bolt CMS на Debian 9 — установка LAMP
Bolt CMS на Debian 9 — установка LAMP

Важно: это руководство ориентировано на Debian 9 и PHP 7.0. Адаптируйте версии пакетов, если используете другие релизы.

Введение

Bolt CMS — лёгкая и гибкая система управления контентом с открытым исходным кодом, написанная на PHP. Bolt хорошо подходит для создания современных динамических сайтов и порталов. В этом руководстве показано, как развернуть Bolt на Debian 9 поверх типичного LAMP-стека (Linux, Apache, MySQL/MariaDB, PHP).

Кому полезно: системным администраторам, разработчикам и владельцам сайтов, которые хотят локально или на сервере развернуть Bolt для разработки или продакшна.

Краткая структура руководства

  • Требования и предварительная подготовка сервера
  • Установка Apache, PHP и расширений
  • Установка MariaDB и базовая безопасность
  • Настройка файрвола (UFW/iptables)
  • Конфигурация Apache и PHP (php.ini и OPCache)
  • Установка Bolt (скачивание, распаковка, Composer)
  • Первичная настройка Bolt и проверка работы
  • Рекомендации по безопасности, бэкапам и отладке
  • Чеклисты и критерии приёмки

Требования

Убедитесь, что у вас есть:

  • Сервер (физический, VM или VPS) с Debian 9 (минимальная установка).
  • Статический IP-адрес или корректные DNS-записи для домена.
  • Доступ по root или через пользователя с sudo-привилегиями.
  • В идеале настроенный почтовый сервер (IMAP/SMTP) или доступ к внешнему SMTP (Gmail и т.п.) для уведомлений и регистрации пользователей.
  • Достаточный объём диска и памяти для размещения сайта и медиаконтента.

Совет: если планируете продакшн, используйте отдельную среду для тестирования и автоматизированные бэкапы.

Подготовка сервера — базовые утилиты и hostname

Войдите на сервер под root или под sudo-пользователем.

su -

Установите часто используемые утилиты:

apt install -y bash-completion zip unzip curl wget

Задайте описательное имя хоста (hostname), например fqdn сервера:

hostnamectl set-hostname www.myblog.com

Проверьте hostname:

hostnamectl
cat /etc/hostname
hostname -s
hostname -f

Обновите систему и перезагрузите, если потребуются kernel-обновления:

apt update
apt upgrade -y
systemctl reboot

Примечание: перезагрузка нужна только при обновлении ядра или если вы изменяли системные компоненты, требующие рестарта.

Установка Apache и PHP

Bolt работает под PHP и требует веб-сервера. Установим Apache и PHP 7.0 с необходимыми расширениями (список соответствуют требованиям Bolt 3.x).

apt install -y apache2 libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-opcache php7.0-json php7.0-mbstring php7.0-xml php7.0-cli php7.0-curl php7.0-zip php7.0-bcmath php-imagick php7.0-xmlrpc php7.0-intl

Проверьте доступные модули PHP:

php7.0 -m

Если какие-то расширения не установились, повторите установку с нужными пакетами.

Установка MariaDB и базовая защита

Установим MariaDB и PHP-расширение для MySQL:

apt install -y mariadb-server mariadb-client php7.0-mysql

Проверьте, что MariaDB слушает на localhost (порт 3306):

netstat -tlpn | grep mysql
# или
ss -tlpn | grep mysql

Если netstat отсутствует, установите net-tools:

apt install -y net-tools

Начальная безопасность: войдите в консоль MariaDB и выполните ряд действий.

mysql -h localhost -u root

Примеры команд внутри MariaDB (элементы ввода/вывода в примере показаны как последовательность):

use mysql;
update user set plugin='' where user='root';
flush privileges;
exit;

Далее запустите скрипт обеспечения безопасности:

mysql_secure_installation

Скрипт задаст/поменяет root-пароль, удалит анонимных пользователей, отключит удалённый вход под root и удалит тестовую базу. Рекомендуется отвечать положительно на все пункты в продакшн-среде.

После выполнения убедитесь, что без пароля доступа нет:

mysql -h localhost -u root
# Ожидается: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

А при указании пароля доступ даётся:

mysql -h localhost -u root -p
# Введите пароль

Если MariaDB успешно работает, переходите к созданию базы данных для Bolt ниже.

Проверка веб-сервера

Убедитесь, что Apache запущен и слушает порт 80:

netstat -tlpn | grep :80
# или
ss -tlpn | grep :80

Откройте в браузере IP сервера или домен: http://ваш_сервер

Если видите дефолтную страницу Apache — сервис работает.

Настройка файрвола

Если включён UFW, разрешите HTTP/HTTPS и SSH:

ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 22/tcp

или использовать именованные профили:

ufw allow WWW
ufw allow 'WWW Full'

Если вы используете iptables + netfilter-persistent:

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl enable netfilter-persistent.service

Важно: прежде чем применять правила, убедитесь, что правило SSH добавлено, иначе вы можете потерять доступ по SSH.

Конфигурация PHP и улучшение производительности

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

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Настройте рекомендуемые параметры (найдите и измените соответствующие строки):

file_uploads = On
memory_limit = 128M
post_max_size = 80M
upload_max_filesize = 80M
default_charset = UTF-8
short_open_tag = Off
intl.error_level = 0
magic_quotes_gpc = Off
register_globals = Off
session.auto_start = Off
date.timezone = Europe/London

Замените date.timezone на вашу временную зону (список: http://php.net/manual/en/timezones.php).

Добавьте настройки OPCache для ускорения PHP:

[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Проверьте, что настройки применились:

grep opcache /etc/php/7.0/apache2/php.ini

Перезапустите Apache, чтобы применить изменения:

systemctl restart apache2

Включение модулей Apache и создание виртуального хоста

Включите SSL и mod_rewrite:

a2enmod ssl rewrite
a2ensite default-ssl.conf
systemctl restart apache2

Откройте конфигурацию SSL-сайта и укажите DocumentRoot на /var/www/html/public. Добавьте директивы доступа и разрешите .htaccess:

nano /etc/apache2/sites-enabled/default-ssl.conf

Вставьте (или обновите) блок после DocumentRoot:

DocumentRoot /var/www/html/public

  Options +FollowSymlinks
  AllowOverride All
  Require all granted

То же самое проделайте в /etc/apache2/sites-enabled/000-default.conf.

Перезапустите Apache:

systemctl restart apache2

При доступе через браузер по HTTPS вы, вероятно, увидите предупреждение о самоподписанном сертификате — это ожидаемо для автоматически сгенерированных сертификатов Apache.

Логотип Bolt CMS

Тест phpinfo и проверка временной зоны

Создайте phpinfo-файл в документ-руте:

echo ''| tee /var/www/html/public/info.php

Откройте в браузере: https://domain.tld/info.php — в выводе найдите секцию date и убедитесь, что timezone соответствует.

Страница phpinfo с настройкой timezone

После проверки удалите info.php из соображений безопасности:

rm /var/www/html/public/info.php

Создание базы данных для Bolt

Войдите в MariaDB под root и создайте базу и пользователя:

mysql -u root -p
# Введите пароль

Внутри MariaDB выполните:

CREATE DATABASE bolt_db;
GRANT ALL PRIVILEGES ON bolt_db.* TO 'bolt_user'@'localhost' IDENTIFIED BY 'password1234';
FLUSH PRIVILEGES;
EXIT;

Замените bolt_db, bolt_user и password1234 на свои значения. Для продакшна используйте более сложные пароли и храните их в менеджере секретов.

Загрузка и установка Bolt CMS

Скачайте архив Bolt с официального сайта и распакуйте:

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

Перейдите в извлечённую директорию (пример: bolt-v3.4.4) и скопируйте все файлы в веб-рутк /var/www/html/ (включая скрытые файлы .htaccess и .bolt.yml.dist):

cp -rf bolt-v3.4.4/* /var/www/html/
cp -rf bolt-v3.4.4/.bolt.yml.dist /var/www/html/bolt.yml

Удалите дефолтный index.html Apache и временные файлы:

rm /var/www/html/index.html
rm /var/www/html/public/info.php || true

Установите права владельца на webroot (Apache www-data):

chown -R www-data:www-data /var/www/html/
ls -al /var/www/html/

Откройте конфиг Bolt и укажите данные подключения к БД:

nano /var/www/html/app/config/config.yml

Пример:

database:
    driver: mysql
    databasename: bolt_db
    username: bolt_user
    password: password1234

Пример файла config.yml Bolt

Переключитесь в /var/www/html и подготовьте Composer:

cd /var/www/html/
mv composer.json.dist composer.json
curl -sS https://getcomposer.org/installer | php
php7.0 composer.phar install

Примечание: Composer предупреждает не запускать под root; желательно выполнять install от имени обычного пользователя, затем поправить разрешения.

Первый вход и создание администратора Bolt

Откройте в браузере ваш домен по HTTPS. Инсталлятор Bolt предложит создать первого пользователя: введите имя, пароль и e-mail. После создания вы будете перенаправлены в админ-панель.

Установщик Bolt CMS — экран создания первого пользователя

После входа отредактируйте контент и тему в админке.

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

Фронтенд сайта доступен по HTTPS:

https://www.yourdomain.tld

Пример фронтенда на Bolt CMS

Админ-панель доступна по адресу:

https://www.yourdomain.tld/bolt/login

Страница входа Bolt CMS

Принудительное перенаправление на HTTPS через .htaccess

Отредактируйте файл /var/www/html/public/.htaccess и добавьте правила редиректа на HTTPS сразу после строки RewriteEngine on:

# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

Внизу .htaccess можно задать PHP-опции:

php_value session.use_trans_sid 0
php_value register_globals 1
php_value upload_max_filesize 50M
php_value post_max_size 50M

Важно: некоторые параметры в .htaccess влияют на перформанс и безопасность — применяйте осознанно.

Рекомендации по безопасности и поддержке

  • Удалите или ограничьте доступ к скрипту phpinfo и другим диагностическим страницам.
  • Используйте внешние SSL-сертификаты (Let’s Encrypt) в продакшне вместо самоподписанных.
  • Ограничьте доступ к /app и другим административным путям через правила Apache или IP-фильтрацию.
  • Регулярно обновляйте систему, PHP, MariaDB и Bolt до поддерживаемых версий.
  • Настройте резервное копирование базы данных и файлов сайта (например, cron + mysqldump + rsync).

Пример простого cron-скрипта для дампа базы и архива файлов (на уровне идеи):

# Ежедневный дамп БД
0 2 * * * /usr/bin/mysqldump -u backup_user -p'SECRET' bolt_db | gzip > /backups/bolt_db_$(date +\%F).sql.gz
# Архив веб-рута
0 3 * * * tar -czf /backups/www_$(date +\%F).tar.gz /var/www/html/

Не храните пароли в открытом виде — используйте секретное хранилище.

Отладка и распространённые ошибки

  1. Отсутствие соединения с БД: проверьте config.yml, лог MariaDB (/var/log/mysql), корректность пользователя и пароля, доступность порта.
  2. Ошибки прав доступа: убедитесь, что владелец файлов — www-data и права доступа корректны. chown -R www-data:www-data /var/www/html/
  3. 500 Internal Server Error: смотрите логи Apache (/var/log/apache2/error.log) и логи PHP.
  4. Проблемы с зависимостями Composer: запускайте php composer.phar install и проверяйте вывод. В проде не запускать Composer под root.
  5. SSL-предупреждение в браузере: ожидаемо для самоподписанных сертификатов; используйте Let’s Encrypt для продакшна.

Чек-лист перед переводом сайта в продакшн

  • Установлен и проверен SSL от Let’s Encrypt или другого CA
  • Удалён или заблокирован доступ к phpinfo и временным файлам
  • Установлены регулярные бэкапы БД и файлов
  • Настроены права на файлы и каталоги (www-data)
  • Отключены отладочные выводы и показ ошибок в браузере
  • Настроен мониторинг и уведомления (логирование, Uptime)
  • Тесты работоспособности (см. Критерии приёмки)

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

  1. Сайт доступен по HTTPS без ошибок сервера.
  2. Пользователь-администратор может войти в /bolt/login и создать/редактировать контент.
  3. Записи, созданные в админке, отображаются на фронтенде.
  4. База данных доступна и отвечает на SQL-запросы.
  5. Бэкап можно восстановить (проверка на тестовой среде).

Мини-методология развертывания (быстрая)

  1. Подготовка сервера и резервная копия состояния.
  2. Установка базовых пакетов (Apache, PHP, MariaDB).
  3. Настройка безопасности MariaDB и UFW/iptables.
  4. Настройка PHP, включение OPCache.
  5. Установка Bolt и Composer-зависимостей.
  6. Тестирование функционала и перенос в продакшн.

Роли и обязанности (кто что делает)

  • Системный администратор: подготовка сервера, безопасность, SSL, файрвол, бэкапы.
  • Веб-разработчик: настройка конфигураций PHP/Apache, установка зависимостей, правка тем и шаблонов Bolt.
  • Контент-менеджер: наполнение сайта, тестирование отображения контента.

План отката / Runbook при неудаче

  1. Если сайт упал после обновления зависимостей, откатите директорию /var/www/html/ из резервной копии.
  2. Восстановите базу данных из последнего успешного дампа:
gunzip < /backups/bolt_db_YYYY-MM-DD.sql.gz | mysql -u root -p bolt_db
  1. Перезапустите Apache:
systemctl restart apache2
  1. Проверка логов и запуск отладки.

Тест-кейсы приёмки

  • ТК1: Создать новую запись в админке, проверить отображение на фронтенде.
  • ТК2: Загрузить файл размером до upload_max_filesize и убедиться, что он доступен.
  • ТК3: Сменить пароль администратора и войти повторно.
  • ТК4: Выполнить дамп и восстановление базы данных на тестовой машине.

Безопасность и соответствие приватности

  • Храните журналы доступа и ошибок отдельно; ограничьте доступ к ним.
  • Не используйте учетные записи с правами root для обычной работы; применяйте sudo.
  • Для обработки личных данных (e-mail, регистрация) учитывайте требования локального законодательства и GDPR при работе с пользователями из ЕС: документируйте основания обработки, храните только необходимые данные и обеспечьте право на удаление по запросу.

Частые альтернативы и варианты

  • Вместо Apache можно использовать Nginx (LEMP). Для Bolt потребуется настройка fastcgi и корня /public.
  • Вместо MariaDB допустимо использовать MySQL (совместимость), но проверьте версии.
  • Для продакшн-SSL используйте Let’s Encrypt (certbot) для автоматического продления сертификатов.

Примеры команд для Nginx (ориентир)

Пример server-блока Nginx минимально:

server {
    listen 80;
    server_name yourdomain.tld;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name yourdomain.tld;

    root /var/www/html/public;
    index index.php index.html;

    location / {
      try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
      include snippets/fastcgi-php.conf;
      fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    }
}

Чек-листы по ролям (коротко)

Системному администратору:

  • Установить SSL
  • Настроить бэкапы
  • Настроить UFW/iptables
  • Мониторить логи

Разработчику:

  • Проверить composer-зависимости
  • Настроить кэш OPCache
  • Тестировать темы и плагины

Контент-менеджеру:

  • Создать контент, проверить визуализацию
  • Убедиться, что изображения и загрузки работают

Факто-бокс — ключевые команды

  • Установка Apache/PHP: apt install apache2 php7.0 …
  • Установка MariaDB: apt install mariadb-server
  • Установка Bolt: wget + unzip + cp
  • Composer: curl -sS https://getcomposer.org/installer | php
  • Права: chown -R www-data:www-data /var/www/html/

Глоссарий — термины в одну строку

  • LAMP: стек Linux, Apache, MySQL/MariaDB, PHP.
  • OPCache: механизм кэширования байт-кода PHP для ускорения.
  • Composer: менеджер зависимостей PHP.
  • FQDN: полное доменное имя хоста (fully qualified domain name).

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

  • Если у вас ограничен доступ к серверу (shared-hosting) и вы не можете устанавливать необходимые расширения — рассмотрите托管ные решения Bolt или хостинг, поддерживающий Composer.
  • Если нужна поддержка последних версий PHP — обновите инструкции под вашу версию PHP и проверьте совместимость Bolt.

Малые советы по производительности

  • Используйте OPCache и при необходимости службы PHP-FPM.
  • Выносите медиаконтент в CDN или отдельное хранилище.
  • Кешируйте страницы на уровне прокси (Varnish) или Nginx.

Короткое объявление для команды (100–200 слов)

Bolt CMS успешно установлен и настроен на сервере Debian 9 с LAMP-стеком. Выполнена начальная конфигурация Apache, PHP 7.0 и MariaDB, создана база данных и администратор Bolt. Настроен HTTPS (самоподписанный сертификат для тестирования). Рекомендуется подключить Let’s Encrypt, настроить регулярные бэкапы и переместить сервер в production-режим после проверки критериев приёмки и финальной настройки прав доступа.

Резюме

Вы установили Bolt CMS на Debian 9, настроили окружение LAMP, создали базу данных и первого администратора, а также применили базовые меры безопасности. Для продакшна доведите SSL, бэкапы и мониторинг до промышленного уровня.

Важно: проверяйте совместимость версий Bolt и PHP, а также регулярно обновляйте компоненты системы.


Ссылки для справки:

Поделиться: 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 — руководство