Установка Bolt CMS на Ubuntu 20.04 с Nginx и Let's Encrypt SSL

Bolt — это свободная, open-source, лёгкая и простая в использовании система управления контентом на PHP. Она ориентирована на удобство и помогает быстро создавать мощные динамические сайты. Bolt построен на Silex microframework и использует современные open-source библиотеки, хорошо подходит для сайтов в HTML5 с совремённой разметкой.
В этом руководстве вы увидите, как установить Bolt CMS с Nginx и сертификатом Let’s Encrypt на Ubuntu 20.04.
Краткие требования
- Сервер с Ubuntu 20.04.
- Домен, указывающий на IP сервера (например, bolt.example.com).
- Доступ root или пользователь с sudo.
- Стандартный стек LEMP: Nginx, MariaDB/MySQL, PHP-FPM.
Важно: проверяйте текущие требования Bolt на официальном репозитории перед продакшн-развёртыванием.
Что мы будем делать
- Обновим пакеты и установим базовые утилиты.
- Установим Nginx и MariaDB.
- Установим PHP и расширения, нужные Bolt.
- Создадим базу данных и пользователя для Bolt.
- Клонируем Bolt, настроим конфигурацию и зависимости через Composer.
- Настроим виртуальный хост Nginx.
- Получим и настроим SSL-сертификат от Let’s Encrypt.
1. Подготовка системы
Сначала обновите список пакетов:
apt-get update -yУстановите утилиты, которые понадобятся:
apt-get install software-properties-common gnupg2 unzip git -yПосле установки зависимостей можно переходить к установке LEMP.
2. Установка LEMP (Nginx + MariaDB + PHP)
Установите Nginx и MariaDB:
apt-get install nginx mariadb-server -yUbuntu 20.04 по умолчанию идёт с PHP 7.4. В этом примере автор использовал PHP 7.2 через репозиторий Ondřej; если вы предпочитаете системную версию PHP 7.4 — используйте её и установите соответствующие расширения. Для установки репозитория Ondřej выполните:
add-apt-repository ppa:ondrej/php
apt-get update -yУстановите PHP и необходимые расширения (пример для PHP 7.2):
apt-get install 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 -yЕсли вы используете PHP 7.4, замените префикс пакетов на php7.4.
После установки PHP перезапустите PHP-FPM и Nginx:
systemctl restart php7.2-fpm
systemctl restart nginx(или используйте php7.4-fpm, если устанавливали PHP 7.4)
Примечание: рекомендуется запустить mysql_secure_installation для базовой защиты MariaDB:
mysql_secure_installation3. Создание базы данных для Bolt
Войдите в MariaDB:
mysqlВнутри MySQL создайте базу данных и пользователя (замените пароль на надёжный):
MariaDB [(none)]> CREATE DATABASE boltdb;
MariaDB [(none)]> CREATE USER 'bolt'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> GRANT ALL ON boltdb.* TO 'bolt'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;Совет: в продакшне используйте сложные пароли и при возможности отдельного пользователя с минимальными привилегиями.
4. Загрузка Bolt CMS и установка зависимостей
Клонируйте репозиторий Bolt в корень веб-сервера (в этом примере /var/www/html):
cd /var/www/html
git clone https://github.com/bolt/bolt.gitПерейдите в каталог bolt и скопируйте пример конфигурации:
cd bolt
cp app/config/config.yml.dist app/config/config.ymlОтредактируйте app/config/config.yml и укажите настройки базы данных. Откройте файл в nano или вашем редакторе:
nano app/config/config.ymlНайдите раздел database и замените sqlite на mysql, затем укажите параметры:
database:
driver: mysql
username: bolt
password: password
databasename: boltdb
host: localhost
prefix: prefix_Сохраните и закройте файл.
Установите Composer — менеджер зависимостей PHP:
wget -O composer-setup.php https://getcomposer.org/installer
php composer-setup.php --install-dir=/usr/local/bin --filename=composerОжидаемый вывод (пример):
All settings correct for using Composer
Downloading...
Composer (version 2.0.2) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composerУстановите PHP-зависимости проекта Bolt:
composer installПосле завершения установки зависимостей установите правильные права на файлы и владельца:
chown -R www-data:www-data /var/www/html/bolt
chmod -R 755 /var/www/html/bolt5. Настройка Nginx для Bolt
Создайте конфигурацию виртуального хоста для Bolt:
nano /etc/nginx/sites-available/bolt.confДобавьте следующие строки (пример взят из исходного руководства):
server {
listen 80;
root /var/www/html/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;
}
}Примечание: при использовании PHP 7.4 замените путь fastcgi_pass на unix:/var/run/php/php7.4-fpm.sock;
Сохраните файл и включите сайт:
ln -s /etc/nginx/sites-available/bolt.conf /etc/nginx/sites-enabled/bolt.confПроверьте конфигурацию Nginx на синтаксис и перезапустите:
nginx -t
systemctl restart nginxВы должны увидеть сообщение об успешном тесте конфигурации Nginx.
6. Доступ к Bolt CMS
Откройте в браузере адрес http://bolt.example.com и вы должны увидеть экран создания первого администратора.

Заполните имя пользователя, пароль, email и нажмите Create the first user. После входа вы попадёте в панель управления Bolt:

Чтобы посмотреть сайт, нажмите View site:

7. Защита сайта: Let’s Encrypt SSL
Установите Certbot для автоматической выдачи сертификатов:
apt-get install python3-certbot-nginx -yЗапустите Certbot для вашего домена:
certbot --nginx -d bolt.example.comВо время установки вам будет предложено ввести email и принять условия обслуживания. Затем Certbot предложит вариант — перенаправлять ли весь трафик с HTTP на HTTPS. Для нового сайта рекомендуется выбрать перенаправление (Redirect).
После успешной установки вы увидите путь к сохранённым сертификатам, например:
/etc/letsencrypt/live/bolt.example.com/fullchain.pem
/etc/letsencrypt/live/bolt.example.com/privkey.pemCertbot автоматически обновляет конфигурацию Nginx и выполняет перезагрузку сервера.
Важно: сертификаты Let’s Encrypt действуют 90 дней. Проверьте автоматическое обновление командой:
certbot renew --dry-runРекомендуется добавить cron или systemd timer для регулярного запуска certbot renew (обычно Certbot создаёт их автоматически).
Проверка и отладка
- Проверьте логи Nginx: /var/log/nginx/error.log и /var/log/nginx/access.log
- Проверьте логи PHP-FPM: /var/log/php7.2-fpm.log или соответствующий для вашей версии PHP
- При ошибках доступа проверьте права на файлы и владельца: www-data
- Если Composer не устанавливает зависимости — проверьте версию PHP и расширения (mbstring, openssl, zip и т.д.)
Частые проблемы и решения
- Ошибка 502 Bad Gateway: проверьте, что PHP-FPM запущен и что путь unix:/var/run/php/phpX.X-fpm.sock указан правильно.
- Ошибка установки зависимостей Composer: убедитесь, что расширения PHP установлены и версия Composer корректна.
- Проблемы с правами: chown -R www-data:www-data /var/www/html/bolt и chmod корректно выставьте на каталоги uploads/cache.
- Сертификат не выдаётся: проверьте, что домен указывает на сервер и порт 80 доступен извне.
Рекомендации по безопасности и эксплуатации
- Регулярно обновляйте систему и пакеты: apt-get update && apt-get upgrade -y
- Используйте сильные пароли и ключи SSH вместо пароля для доступа в сервер.
- Ограничьте доступ к панели администратора по IP, если это возможно.
- Резервное копирование: храните бэкапы базы данных и каталога /var/www/html/bolt в безопасном месте.
- Мониторинг: настройте базовый мониторинг доступности (Uptime) и метрики дискового пространства.
Чеклист перед выходом в продакшн
- Сертификат Let’s Encrypt успешно установлен и тестово обновляется
- Все PHP-расширения установлены и работают
- Права на файлы настроены корректно
- Бэкап базы данных и файлов настроен
- Ограничен доступ к нежелательным административным интерфейсам
Альтернативы и расширения
- Использовать Docker-контейнеры для Bolt: контейнеризация упрощает переносимость и управление зависимостями.
- Рассмотреть использование встроенных решений для резервирования и CI/CD при частых обновлениях контента.
- Для больших нагрузок — рассмотреть добавление кеширования (opcache, reverse-proxy, CDN).
Короткая методология развёртывания
- Подготовить сервер и DNS.
- Развернуть LEMP и PHP.
- Создать базу данных и пользователя.
- Установить Bolt и зависимости.
- Настроить Nginx и SSL.
- Проверить и включить бэкапы и мониторинг.
Краткая глоссарий (1 строка)
- Bolt — CMS на PHP для создания контентных сайтов; Composer — менеджер зависимостей PHP; Certbot — клиент Let’s Encrypt для получения сертификатов.
Заключение
Поздравляем — вы установили Bolt CMS на Ubuntu 20.04 с Nginx и защитили сайт сертификатом Let’s Encrypt. Теперь вы можете создавать и управлять контентом через панель Bolt. Если столкнётесь с проблемами, проверьте логи, права и настройки PHP-FPM. Успешного развёртывания!
Сводка:
- Установили LEMP-стек и PHP.
- Создали базу данных и пользователя для Bolt.
- Клонировали Bolt, установили зависимости и права.
- Настроили Nginx и включили HTTPS через Let’s Encrypt.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента