Встановлення та налаштування Grav (Flat-File CMS)
Grav не потребує бази даних. Мінімальні вимоги: PHP 7.3.6+ (рекомендується 8.1+), розширення mbstring, curl, ctype, dom, gd, json, xml, zip. Apache або Nginx.
Встановлення
# Варіант 1: Прямо завантажити
curl -L https://getgrav.org/download/core/grav-admin/latest -o grav-admin.zip
unzip grav-admin.zip -d /var/www/mysite
cd /var/www/mysite
# Варіант 2: Через Composer
composer create-project getgrav/grav /var/www/mysite
# Встановити дозволи
find . -type f | xargs chmod 664
find . -type d | xargs chmod 775
find . -type d -name cache | xargs chmod 777
find . -type d -name logs | xargs chmod 777
find . -type d -name images | xargs chmod 777
find . -type d -name assets | xargs chmod 777
Конфігурація Nginx
server {
listen 80;
server_name mysite.com;
root /var/www/mysite;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# Захист системних директорій
location ~ ^/(\.git|cache|logs|backup|bin|system|vendor|\.env) {
return 403;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Конфігурація system.yaml
# user/config/system.yaml
home:
alias: /home
pages:
theme: my-theme
markdown:
extra: true # увімкнути Markdown Extra (таблиці, виноски)
auto_line_breaks: false
cache:
enabled: true
driver: auto
lifetime: 604800
debugger:
enabled: false
errors:
display: 0
log: true
languages:
supported: [ru, en]
include_default_lang: false
translations: true
Конфігурація site.yaml
# user/config/site.yaml
title: Мій сайт
author:
name: Компанія
email: [email protected]
metadata:
description: Опис сайту
taxonomies: [category, tag]
summary:
enabled: true
size: 300
GPM — Менеджер пакетів
# Оновити список пакетів
bin/gpm index
# Встановити плагін
bin/gpm install form login admin sitemap feed
# Оновити все
bin/gpm update
# Оновити ядро Grav
bin/gpm selfupgrade
# Список встановлених пакетів
bin/gpm list
Створити адміністратора
# Через CLI (без веб-інсталятора)
bin/plugin login newuser \
--user=admin \
--password=Admin123! \
[email protected] \
--name="Admin Name" \
--admin=true
Налаштування конфігурації оточення
# user/config/env/production/system.yaml — перевизначення для prod
cache:
enabled: true
driver: redis
redis:
socket: '/var/run/redis/redis.sock'
debugger:
enabled: false
# user/config/env/development/system.yaml
cache:
enabled: false
debugger:
enabled: true
shutdown:
close_connection: true
Переключення оточення через змінну GRAV_ENVIRONMENT=production або через setup.php:
// setup.php у корені
$environment = getenv('GRAV_ENVIRONMENT') ?: 'production';
define('GRAV_ENVIRONMENT', $environment);







