Установка и настройка Craft CMS
Craft CMS устанавливается через Composer. Требования: PHP 8.2+, MySQL 8.0+ или PostgreSQL 13+, расширения PHP: imagick/gd, intl, fileinfo, mbstring.
Установка
composer create-project craftcms/craft my-project
cd my-project
php craft setup
# Отвечаем на вопросы: database host, name, user, password
# Создаёт .env и запускает миграции
Структура проекта
my-project/
├── config/
│ ├── app.php # настройки приложения
│ ├── db.php # база данных
│ ├── general.php # основные настройки
│ └── routes.php # кастомные маршруты
├── modules/ # кастомные модули Yii2
├── templates/ # Twig-шаблоны
│ ├── _layouts/
│ ├── _components/
│ └── index.twig
├── web/ # document root
│ └── index.php
└── .env
Основная конфигурация
// config/general.php
return [
'*' => [
'cpTrigger' => 'manage', // вместо стандартного /admin
'defaultWeekStartDay' => 1, // Понедельник
'omitScriptNameInUrls' => true,
'useEmailAsUsername' => true,
'translationDebugOutput' => false,
'maxRevisions' => 10,
],
'production' => [
'allowAdminChanges' => false, // запрет изменений схемы в проде
'allowUpdates' => false,
'backupOnUpdate' => false,
'devMode' => false,
],
'dev' => [
'devMode' => true,
'allowAdminChanges' => true,
],
];
Переменные окружения (.env)
CRAFT_ENVIRONMENT=dev
CRAFT_APP_ID=CraftCMS--my-project
CRAFT_SECURITY_KEY=generated-secure-key
DB_DRIVER=mysql
DB_SERVER=127.0.0.1
DB_PORT=3306
DB_DATABASE=craftcms_dev
DB_USER=craftcms
DB_PASSWORD=password
DB_SCHEMA=public
DB_TABLE_PREFIX=
PRIMARY_SITE_URL=http://localhost:8080
ASSET_BASE_URL=https://cdn.mysite.com
Настройка Vite для ассетов
composer require nystudio107/craft-vite
// vite.config.ts
import { defineConfig } from 'vite';
import ViteRestart from 'vite-plugin-restart';
import { craftCmsViteConfig } from '@nystudio107/vite';
export default defineConfig({
...craftCmsViteConfig,
build: { manifest: true, outDir: './web/dist' },
server: { port: 3000, strictPort: true },
});
{# В layout #}
{{ craft.vite.script('src/js/app.ts') }}
{{ craft.vite.stylesheet('src/css/app.pcss') }}
Project Config
Craft хранит конфигурацию структуры (секции, поля, entry types) в YAML-файлах в config/project/. Это позволяет управлять структурой через Git:
php craft project-config/apply # применить конфиг из Git
php craft project-config/diff # посмотреть расхождения
В проде allowAdminChanges: false — изменения только через деплой, не через UI.
Установка и базовая настройка Craft CMS — 4–8 часов.







