09. Grav CMS: установка блога
Почему Grav
Grav — это flat-file CMS без базы данных. Все страницы хранятся в Markdown-файлах, а изображения — в папках на диске. Это значит:
- Не нужен MySQL или PostgreSQL
- Резервное копирование — просто копируем папку
- Высокая скорость работы
- Всё под версиями в Git
Для личного блога Grav — идеальный выбор.
Установка Grav
Идём в корневую директорию веб-сервера:
cd /var/www/vds.example.com
Скачиваем Grav:
sudo rm -rf ./*
sudo wget https://getgrav.org/download/core/grav-admin/latest -O grav.zip
sudo unzip grav.zip
sudo mv grav-admin/* ./
sudo mv grav-admin/.* ./
sudo rm -rf grav-admin grav.zip
Права доступа
Grav пишет кэш и пользовательские файлы. Выставляем правильные права:
sudo chown -R www-data:www-data /var/www/vds.example.com
sudo chmod -R 755 /var/www/vds.example.com
sudo chmod -R 775 /var/www/vds.example.com/cache
sudo chmod -R 775 /var/www/vds.example.com/images
sudo chmod -R 775 /var/www/vds.example.com/user
sudo chmod -R 775 /var/www/vds.example.com/backup
Можно сделать проще — добавить пользователя в группу www-data:
sudo usermod -a -G www-data $USER
После этого нужно выйти и зайти снова (exec sudo -u $USER -l), чтобы группа применилась.
Настройка Nginx для Grav
Конфиг из предыдущей части уже подходит, но добавим пару правил для кэша Grav. Редактируем /etc/nginx/sites-available/vds.example.com:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~* /(\.git|cache|bin|logs)/ {
deny all;
return 403;
}
location ~* /(system|vendor)/ {
deny all;
return 403;
}
Проверяем и перезагружаем:
sudo nginx -t
sudo systemctl reload nginx
Установка админ-панели
Откройте браузер и перейдите по адресу https://vds.example.com/admin.
Grav предложит создать администратора. Заполните поля:
- Username — логин (не root и не admin для безопасности)
- Password — надёжный пароль
- Email — ваш адрес
На следующем шаге Grav установит админ-плагин и несколько расширений. Дождитесь завершения.
Базовая конфигурация
После входа в панель управления:
- Site → Configuration — укажите название сайта, описание, язык по умолчанию
- Themes — выберите тему (можно скачать новые через админку)
- Pages — создайте первую запись (Homepage, Blog, About)
Grav использует Markdown-файлы. Каждая страница — это .md файл с YAML-заголовком. Пример:
---
title: "Моя первая запись"
date: 2026-07-19T12:00:00Z
taxonomy:
tag: [настройка, grav]
---
## Привет, мир!
Это моя первая запись в блоге на Grav. Весь контент хранится прямо на диске — никакой базы данных.
Включение кэширования
В админке: Configuration → System → Caching. Включите:
- Caching — On
- Cache Timeout — 3600 (1 час)
- Enable CSS/JS Pipeline — On (для продакшена)
Это ускорит загрузку страниц в разы.
Полезные плагины
Через админ-панель (Plugins → Add) рекомендую установить:
- TNT Search — полнотекстовый поиск по сайту без БД
- Sitemap — генерация sitemap.xml для Google
- Feed — RSS/Atom лента
- Shortcode Core — расширенный синтаксис для Markdown
- Git Sync — синхронизация контента с Git-репозиторием
Итог
Grav установлен и готов к наполнению. Вы можете писать статьи прямо в браузере через админ-панель или в Markdown-файлах на сервере. В следующей части развернём VPN-туннель на x-ui + Xray.
Комментарии
Комментарии пока не подключены.