Установка и настройка Kirby CMS
Kirby не требует базы данных — достаточно PHP 8.1+ и веб-сервера. Устанавливается через Composer или архивом. Лицензия нужна только для продакшена, в разработке работает без неё.
Системные требования
- PHP 8.1 или выше
- Расширения:
mbstring,curl,gdилиimagick,json,fileinfo - Apache с
mod_rewriteили Nginx - Запись в директории
content/,media/,site/accounts/
Установка через Composer
composer create-project getkirby/plainkit my-site
cd my-site
Для старта с панелью управления:
composer create-project getkirby/starterkit my-site
Структура после установки:
my-site/
├── content/ # контент (вне web root не нужен)
├── kirby/ # ядро CMS (не трогать)
├── media/ # генерируемые изображения (gitignore)
├── site/ # кастомизация
└── index.php # точка входа
Настройка Nginx
server {
listen 80;
server_name mysite.com;
root /var/www/my-site;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
# запрет доступа к системным директориям
location ~ ^/(kirby|site/accounts|site/sessions) {
return 403;
}
# кэш статики
location ~* \.(jpg|jpeg|png|webp|svg|css|js|woff2)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
}
Настройка Apache (.htaccess)
Kirby поставляется с готовым .htaccess, но стоит проверить несколько вещей:
RewriteEngine On
RewriteBase /
# запрет прямого доступа к системным папкам
RewriteRule ^kirby/.*$ - [F,L]
RewriteRule ^site/accounts/.*$ - [F,L]
RewriteRule ^site/sessions/.*$ - [F,L]
# роутинг
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php [L]
Базовый конфиг
<?php
// site/config/config.php
return [
'debug' => false, // true только в разработке
'url' => 'https://mysite.com',
'locale' => 'ru_RU.UTF-8',
'timezone' => 'Europe/Moscow',
'languages' => true, // включить мультиязычность
'panel' => [
'install' => false, // только при первой установке
'slug' => 'admin', // URL панели
'css' => 'assets/admin.css',
],
'cache' => [
'pages' => [
'active' => true,
],
],
'thumbs' => [
'driver' => 'im', // ImageMagick вместо GD
'quality' => 85,
'format' => 'webp',
],
];
Создание первого пользователя
После установки панель доступна по /panel. При первом входе Kirby предлагает создать администратора через браузер. Для автоматизации (CI, Docker):
php vendor/bin/kirby create-user \
--name="Admin" \
--email="[email protected]" \
--password="SecurePassword123" \
--role="admin"
Или программно через site/config/install.php:
<?php
use Kirby\Cms\User;
User::create([
'name' => 'Admin',
'email' => '[email protected]',
'password' => 'SecurePassword123',
'role' => 'admin',
]);
Мультиязычность
// site/config/config.php
return [
'languages' => true,
];
Затем создать языки через панель или файлами:
// site/languages/ru.php
return [
'code' => 'ru',
'name' => 'Русский',
'default' => true,
'locale' => 'ru_RU.UTF-8',
'url' => '/',
'direction' => 'ltr',
'translations' => [
'read.more' => 'Читать далее',
'published' => 'Опубликовано',
],
];
Контент для русского языка хранится в about.ru.txt, для английского — в about.en.txt.
Git и деплой
В .gitignore минимальный набор:
/kirby
/media
/site/accounts
/site/sessions
/.env
kirby/ добавляется как Composer-зависимость, не коммитится напрямую. Деплой через composer install --no-dev на сервере.
Сроки
Установка и базовая настройка с Nginx, SSL и панелью — 2–4 часа. С мультиязычностью, ролями пользователей и кастомным конфигом — 1 день.







