Установка BoltWire CMS на Ubuntu 20.04

BoltWire — лёгкая CMS на PHP; в этой инструкции показана пошаговая установка на сервер Ubuntu 20.04 с Nginx, PHP 7.2, MySQL и Composer. Приведены команды, конфигурации Nginx и PHP, рекомендации по безопасности, чек-листы для ролей и сценарии устранения ошибок.
Введение
BoltWire (Bolt) — лёгкая система управления контентом на базе PHP. Она подходит для небольших сайтов и блогов, обеспечивает простую работу с контентом без необходимости глубокого знания HTML. В оригинальном руководстве отмечаются такие возможности, как динамическая генерация страниц, управление правами пользователей, расширяемость через модули и локализация. В этой адаптации вы получите полный пошаговый план установки на Ubuntu 20.04 и дополнительные операционные рекомендации по запуску, безопасности и отладке.
Краткий факт-бокс
- Целевая ОС: Ubuntu 20.04 LTS
- Веб-сервер: Nginx (рекомендуется как обратный прокси)
- PHP: 7.2 или выше (в руководстве использована 7.2)
- Менеджер зависимостей: Composer
- База данных: MySQL (см. замечание о совместимости в секции «Совместимость»)
Важно
Проверьте текущие системные требования Bolt на официальном репозитории проекта перед установкой в production — требования со временем меняются.
Содержание
- Требования
- Подготовка сервера и доступ по SSH
- Обновление системы
- Установка базовых пакетов
- Установка и настройка Nginx
- Настройка блока сервера (server block)
- Установка MySQL и создание базы
- Установка PHP и настройка
- Установка Composer
- Установка Bolt
- Доступ к Bolt и первый запуск
- Частые ошибки и устранение неполадок
- Рекомендации по безопасности и производительности
- Резервное копирование и миграция
- Чек-листы по ролям
- Критерии приёмки
- Глоссарий
- Анонс / короткое сообщение
Требования
- Свежая установка Ubuntu 20.04 LTS.
- SSH-доступ под root или пользователем с sudo-привилегиями.
- Зарегистрированное доменное имя, указывающее на IP сервера (A-запись).
- Базовые знания командной строки Linux.
Подготовка сервера и доступ по SSH
Подключитесь к серверу по SSH. Пример команды:
ssh root@IP_Address -p Port_number- root — замените своим пользователем, если вы не используете root.
- IP_Address — IP сервера (узнать можно командой hostname -I).
- Port_number — обычно 22; если на сервере другой порт SSH, укажите его.
Пример проверки IP:
hostname -IРекомендации по безопасности SSH (выполните после первоначального доступа):
- Создайте непривилегированного пользователя и добавьте его в sudo.
- Отключите вход под root через SSH (в /etc/ssh/sshd_config -> PermitRootLogin no), затем перезапустите sshd.
- Настройте аутентификацию по ключам и отключите парольную аутентификацию.
Обновление системы
Проверьте версию Ubuntu:
sudo lsb_release -aОбновите пакеты и установите обновления безопасности:
sudo apt-get update && sudo apt-get upgrade -yКоманда sudo reboot рекомендуема в случае обновления ядра или системных библиотек:
sudo reboot

Примечание
-y в apt автоматически отвечает “yes” на запросы, используйте осторожно на production-системах.
Установка базовых пакетов
Установите утилиты, которые понадобятся в процессе установки и администрирования:
sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-httpsПояснения:
- socat — утилита для перенаправления соединений (может понадобиться для проксирования сокетов).
- apt-transport-https — позволяет apt использовать HTTPS-репозитории.
- bash-completion — автодополнение команд в bash.
- curl и wget — для загрузки файлов и скриптов.

Установка Nginx
Nginx используется как обратный прокси и статический сервер файлов. Установка:
sudo apt-get install nginxЗапустите и включите автозапуск:
sudo systemctl start nginx
sudo systemctl enable nginxПроверка статуса:
sudo systemctl status nginx

Конфигурация Nginx для Bolt
Bolt устанавливается в /var/www/bolt. Пример server block для HTTP (позже можно добавить HTTPS через certbot):
Создаём файл конфигурации:
sudo nano /etc/nginx/sites-available/bolt.confВставьте следующий блок (пример из исходного руководства). Обратите внимание на путь к сокету PHP-FPM — при использовании другой версии PHP измените путь на соответствующий (php7.4-fpm.sock и т.д.).
server {
listen 80;
listen [::]:80;
root /var/www/bolt;
index index.php index.html index.htm;
server_name bolt.example.com;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ [^/]\.php(/|$) {
try_files /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location = /bolt {
try_files $uri /index.php?$query_string;
}
location ^~ /bolt/ {
try_files $uri /index.php?$query_string;
}
}Примечания:
- Путь /var/www/bolt — документация и примеры используют его как корень сайта. Если вы используете другое размещение (например /srv/www), измените root.
- server_name — замените bolt.example.com на ваш домен или IP.
- fastcgi_pass — путь к PHP-FPM сокету должен соответствовать установленной версии PHP (например, php7.4-fpm.sock).
Активируйте конфигурацию и проверьте Nginx:
sudo ln -s /etc/nginx/sites-available/bolt.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo systemctl restart nginx
Если вы планируете использовать HTTPS — настройте certbot и добавьте редиректы на 443.
Установка MySQL
В руководстве отмечено, что BoltWire требует минимум MySQL 4.2, но этот комментарий может быть устаревшим. Современные установки используют MySQL 5.7/8.0 или совместимые форки (MariaDB). Перед установкой проверьте актуальные требования Bolt в репозитории.
Установка MySQL (или MariaDB):
sudo apt -y install mysql-serverЗапустите и включите автозапуск:
sudo systemctl start mysql
sudo systemctl enable mysql
Создание базы данных и пользователя
Подключитесь к MySQL и создайте базу и пользователя (в примере — база bolt, пользователь bolt):
sudo mysql -u root -pВнутри консоли MySQL выполните:
CREATE DATABASE bolt;
CREATE USER 'bolt'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL ON bolt.* TO 'bolt'@'localhost';
FLUSH PRIVILEGES;
exitВажно: замените ‘mypassword’ на сильный пароль. Для production используйте отдельного пользователя с ограниченными правами и безопасный пароль.
Установка PHP
Bolt требует PHP 7 или выше и соответствующие расширения. В примере используется PPA ondrej/php и PHP 7.2.
Добавление PPA и установка PHP 7.2:
sudo apt -y install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get updateУстановка набора пакетов PHP 7.2:
sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-zip php7.2-pgsql php7.2-sqlite3 php7.2-curl php7.2-gd php7.2-mysql php7.2-intl php7.2-json php7.2-opcache php7.2-xmlПояснения:
- php7.2-fpm — менеджер процессов FastCGI, необходим для работы PHP с Nginx.
- php7.2-mbstring, opcache и др. — расширения, требуемые для корректной работы CMS.
Проверьте версию PHP:
php -v
Настройка php.ini
Откройте конфигурационный файл PHP-FPM:
sudo nano /etc/php/7.2/fpm/php.iniИзмените/проверьте следующие строки для удобной работы Bolt:
file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/St. LouisПояснения:
- file_uploads — разрешает загрузку файлов.
- allow_url_fopen — разрешает доступ к файлам по URL (нужно с осторожностью по соображениям безопасности).
- memory_limit, upload_max_filesize, max_execution_time — значения можно корректировать под нагрузку и требования контента.
- date.timezone — установите временную зону вашего региона (например Europe/Moscow).
Перезапустите PHP-FPM, чтобы применить изменения:
sudo service php7.2-fpm restartЕсли вы используете иную версию PHP, замените 7.2 на свою версию.
Установка Composer
Composer — менеджер зависимостей PHP, необходим для установки Bolt и его библиотек.
Скачивание установщика и установка Composer глобально:
sudo curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composerПроверка установки:
composer
При желании Composer можно установить на уровне пользователя, но для серверной установки удобно иметь систему wide-установку в /usr/local/bin.
Установка Bolt
Клонируем репозиторий Bolt в /var/www/ и устанавливаем зависимости через composer:
cd /var/www/
sudo git clone https://github.com/bolt/bolt.gitПосле клонирования перейдите в директорию и установите зависимости:
cd bolt
sudo composer installПосле этого назначьте владельца файлов и права доступа:
sudo chown -R www-data:www-data /var/www/bolt
sudo chmod -R 755 /var/www/boltСоздайте конфигурационный файл на основе шаблона:
sudo cp app/config/config.yml.dist app/config/config.yml

Проверьте и при необходимости измените конфигурацию в app/config/config.yml — там задаются параметры базы данных, пути, локализация и пр.
Доступ к BoltWire CMS
После настройки вы сможете обратиться к Bolt из браузера:
http://localhost:8000/bolt или http://bolt.example.com/bolt (в зависимости от конфигурации server_name и проброшенных портов).
При успешном запуске вы увидите страницу приветствия Bolt и форму для первичной конфигурации.


Частые ошибки и их решения
Ниже расширенный список ошибок с практическими шагами:
Access Denied — проверьте Nginx-конфигурацию, права на файлы и файл конфигурации Bolt. Убедитесь, что /var/www/bolt доступна для www-data.
Cannot load dynamic library ‘/var/www/BoltWire/vendor/php72-zip/libphp7.2.so’ — означает отсутствие или неправильно установленное расширение PHP. Установите соответствующий пакет (например php7.2-zip) и перезапустите PHP-FPM.
Error initializing … No such file or directory — файлы Bolt не найдены или отсутствуют зависимости. Убедитесь, что composer install завершился успешно и все файлы на месте.
Permission Denied — проверьте владельца и права: chown -R www-data:www-data /var/www/bolt и chmod -R 755 /var/www/bolt.
Fatal error: Class ‘PDO’ not found — не установлено расширение PDO или соответствующий драйвер для вашей СУБД (php7.2-mysql для MySQL). Установите необходимый пакет и перезапустите PHP-FPM.
Warning: Invalid argument supplied for foreach() — часто вызвано неверной конфигурацией контента (например отсутствует ожидаемая структура .yml) или пустыми параметрами в шаблонах.
404 not found nginx/1.14.0 (ubuntu) — настройте DNS (A-запись) для bolt.example.com на IP сервера и убедитесь, что server_name в Nginx соответствует домену. Перезапустите Nginx.
Parse error: syntax error, unexpected ‘=’ — возможно, вы используете старую версию PHP для кода, требующего более новой версии. Проверьте совместимость PHP и кода Bolt.
Диагностика и логирование
- Просматривайте логи Nginx: /var/log/nginx/error.log и access.log.
- Логи PHP-FPM: /var/log/php7.2-fpm.log (путь зависит от версии).
- Логи Bolt (если настроено): app/logs/ или storage/logs/ в зависимости от версии.
Рекомендации по безопасности
- Для production обязательно включите HTTPS (используйте certbot / Let’s Encrypt).
- Отключите ненужные функции PHP (например allow_url_fopen, если не требуется).
- Используйте UFW или другой фаервол: закройте порты, оставив 22 (или ваш SSH-порт), 80 и 443 открытыми.
Пример настройки UFW:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable- Ограничьте права на файлы: только www-data должен иметь права записи в каталоги, которые действительно требуют записи (storage, cache, uploads).
- Установите fail2ban для защиты SSH от брутфорс-атак.
- Регулярно применяйте обновления ОС и пакетов.
Производительность и кэширование
- Включите PHP-opcache (php7.2-opcache) для снижения времени выполнения PHP.
- Настройте gzip-сжатие и правильные заголовки кэширования в Nginx для статических ресурсов.
- Рассмотрите использование CDN для статичных медиа (фото, аудио) при высокой нагрузке.
Резервное копирование и миграция
Рекомендуемый минимальный набор резервных копий:
- Полный дамп базы данных (mysqldump).
- Каталог с файлами сайта (/var/www/bolt), включая пользовательские загрузки и шаблоны.
- Конфигурационные файлы Nginx и PHP.
Пример создания дампа базы MySQL:
mysqldump -u bolt -p bolt > bolt-$(date +%F).sqlДля миграции на другой сервер:
- Резервное копирование базы и файлов.
- Восстановление базы через mysql < bolt.sql.
- Копирование каталога /var/www/bolt и корректировка владельцев.
- Проверка и корректировка путей в конфигурационных файлах.
Чек-листы по ролям
Администратор сервера
- Создать пользователя с sudo.
- Настроить SSH-ключи и выключить root-login.
- Установить UFW, fail2ban, настроить Nginx и SSL.
- Настроить регулярные бэкапы и мониторинг.
Разработчик
- Клонировать репозиторий Bolt и установить зависимости через composer.
- Настроить локальное окружение (php, nginx/apache, db).
- Тестировать установку, миграции и обновления на staging.
Контент-менеджер
- Ознакомиться с интерфейсом Bolt.
- Настроить пользователям права доступа.
- Проверить загрузку и отображение медиафайлов.
Критерии приёмки
- Сайт отвечает на HTTP/HTTPS запросы корректно.
- Вход в админ-панель Bolt успешен.
- Создание и отображение новой записи (страницы/поста) работает.
- Загрузка файлов (изображений, аудио) проходит без ошибок.
- Логи не содержат критических ошибок (FATAL/PHP Exception) при базовых операциях.
Совместимость и миграционные советы
- Проверьте требуемую версию PHP и СУБД для конкретной версии Bolt — требования могут обновляться.
- Если вы используете более новую версию PHP (7.4, 8.0), убедитесь в совместимости расширений и кода Bolt.
- При проблемах с расширениями PHP установите соответствующие пакеты из репозиториев (phpX.Y-zip, phpX.Y-mbstring и т.д.).
Мини-практика: обновление Bolt
- Создайте бэкап файлов и базы.
- На staging проверьте обновление: git pull, composer update.
- В production выполните те же шаги и проверьте логи.
Дополнительные подходы
Альтернатива Nginx — Apache с mod_php или php-fpm. Apache может быть проще для тех, кто привык к .htaccess и модульной архитектуре.
Если вы не хотите управлять сервером самостоятельно, рассмотрите размещение на PaaS или managed hosting, который поддерживает PHP-приложения.
Тесты и сценарии приёмки
- Создать пользователя с правами редактора и проверить, что он не может изменять системные настройки.
- Загрузить изображение > 5 МБ и убедиться в успешной загрузке (upload_max_filesize и memory_limit).
- Выполнить запросы на статические ресурсы и замерить время ответа (Nginx + opcache).
Краткий глоссарий
- PHP-FPM — процессный менеджер PHP, работающий с веб-серверами через FastCGI.
- Composer — менеджер зависимостей для PHP.
- Nginx server block — конфигурация виртуального хоста в Nginx.
- UFW — простой инструмент управления фаерволом в Ubuntu.
Часто задаваемые вопросы (не исчерпывающе)
Q: Можно ли использовать MariaDB вместо MySQL? A: Да, MariaDB совместима с MySQL и часто используется как замена.
Q: Как включить HTTPS? A: Используйте certbot (Let’s Encrypt) для выдачи сертификата и настройте Nginx на 443 с редиректом с 80.
Короткий анонс (100–200 слов)
BoltWire — лёгкая и гибкая CMS на PHP, подходящая для блогов и небольших сайтов. В этом руководстве пошагово показана установка BoltWire на Ubuntu 20.04 с Nginx, PHP 7.2, MySQL и Composer. Вы получите рабочую установку, настройку прав доступа и рекомендации по безопасности: включение HTTPS, ограничение доступа через UFW и настройку резервного копирования. Также включены чек-листы для администратора, разработчика и контент-менеджера, расширенные советы по устранению распространённых ошибок и практические рекомендации по обновлениям и миграциям.
Если вы хотите быстро развернуть маленький сайт или блог и при этом сохранить контроль над серверной частью — BoltWire остаётся хорошим выбором. Следуйте пошаговой инструкции и адаптируйте конфигурации под ваши реальные требования.
Резюме
- BoltWire легко установить на Ubuntu 20.04 при помощи Nginx, PHP и Composer.
- Проверьте соответствие версий PHP и СУБД требованиям используемой версии Bolt.
- Обязательно настройте HTTPS и бэкапы перед запуском в production.
Спасибо за внимание — удачной установки и безопасной эксплуатации!
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента