Установка и настройка 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.

Тест phpinfo и проверка временной зоны
Создайте phpinfo-файл в документ-руте:
echo ''| tee /var/www/html/public/info.phpОткройте в браузере: https://domain.tld/info.php — в выводе найдите секцию date и убедитесь, что 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
Переключитесь в /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. После создания вы будете перенаправлены в админ-панель.

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

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

Админ-панель доступна по адресу:
https://www.yourdomain.tld/bolt/login

Принудительное перенаправление на 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/Не храните пароли в открытом виде — используйте секретное хранилище.
Отладка и распространённые ошибки
- Отсутствие соединения с БД: проверьте config.yml, лог MariaDB (/var/log/mysql), корректность пользователя и пароля, доступность порта.
- Ошибки прав доступа: убедитесь, что владелец файлов — www-data и права доступа корректны. chown -R www-data:www-data /var/www/html/
- 500 Internal Server Error: смотрите логи Apache (/var/log/apache2/error.log) и логи PHP.
- Проблемы с зависимостями Composer: запускайте php composer.phar install и проверяйте вывод. В проде не запускать Composer под root.
- SSL-предупреждение в браузере: ожидаемо для самоподписанных сертификатов; используйте Let’s Encrypt для продакшна.
Чек-лист перед переводом сайта в продакшн
- Установлен и проверен SSL от Let’s Encrypt или другого CA
- Удалён или заблокирован доступ к phpinfo и временным файлам
- Установлены регулярные бэкапы БД и файлов
- Настроены права на файлы и каталоги (www-data)
- Отключены отладочные выводы и показ ошибок в браузере
- Настроен мониторинг и уведомления (логирование, Uptime)
- Тесты работоспособности (см. Критерии приёмки)
Критерии приёмки
- Сайт доступен по HTTPS без ошибок сервера.
- Пользователь-администратор может войти в /bolt/login и создать/редактировать контент.
- Записи, созданные в админке, отображаются на фронтенде.
- База данных доступна и отвечает на SQL-запросы.
- Бэкап можно восстановить (проверка на тестовой среде).
Мини-методология развертывания (быстрая)
- Подготовка сервера и резервная копия состояния.
- Установка базовых пакетов (Apache, PHP, MariaDB).
- Настройка безопасности MariaDB и UFW/iptables.
- Настройка PHP, включение OPCache.
- Установка Bolt и Composer-зависимостей.
- Тестирование функционала и перенос в продакшн.
Роли и обязанности (кто что делает)
- Системный администратор: подготовка сервера, безопасность, SSL, файрвол, бэкапы.
- Веб-разработчик: настройка конфигураций PHP/Apache, установка зависимостей, правка тем и шаблонов Bolt.
- Контент-менеджер: наполнение сайта, тестирование отображения контента.
План отката / Runbook при неудаче
- Если сайт упал после обновления зависимостей, откатите директорию /var/www/html/ из резервной копии.
- Восстановите базу данных из последнего успешного дампа:
gunzip < /backups/bolt_db_YYYY-MM-DD.sql.gz | mysql -u root -p bolt_db- Перезапустите Apache:
systemctl restart apache2- Проверка логов и запуск отладки.
Тест-кейсы приёмки
- ТК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, а также регулярно обновляйте компоненты системы.
Ссылки для справки:
- Официальный сайт Bolt: https://bolt.cm/pages/download
- Документация Bolt 3.4: https://docs.bolt.cm/3.4/getting-started/introduction
- PHP timezone: http://php.net/manual/en/timezones.php
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone