SLOT-H: что нужно, чтобы это запустить
Вступление: без паники, там ничего сложного
SLOT-H - это не монстр, который требует выделенного кластера и команды DevOps. Это прагматичный инструмент, который работает на том, что у тебя уже есть.
Если твой хостинг тянет WordPress - он потянет и SLOT-H. Если ты разворачиваешь проекты на VPS - вообще без проблем. Если у тебя локальный сервер для разработки - запустится за пять минут.
Спойлер: требования минимальны. Всё, что нужно - это веб-сервер, PHP и MySQL. Всё остальное - опционально.
Минимальные требования
- Веб-сервер: Apache 2.x или Nginx. Любой из них. Настройка тривиальная.
- PHP: 7.4.x или 8.x.x. Поддерживается обе ветки. Актуальная версия ядра работает на PHP 8.x.
- База данных: MySQL 8.0+ (для демо). Можно использовать 5.7, но 8-я версия быстрее и удобнее. Для полной версии - PostgreSQL, MongoDB.
- Ресурсы: 2 vCPU, 4 GB RAM. Сервер, на котором сейчас работает ядро. Без провисаний.
Сколько места занимает ядро?
Базовый комплект - 4 МБ.
Да, ты не ослышался. Четыре мегабайта.
Это без вендор-папок, без node_modules, без композера, без сотен мелких файлов. Всё, что нужно для работы - уже внутри. Вся статика, все иконки, все библиотеки.
4 МБ.
Важно: в демо-версии отсутствует папка `Storage/`. Она не нужна, потому что в демо нет:
- Сохранения изображений
- Сохранения файлов
- Генерации отчётов
Всё, что требуется для демонстрации - уже внутри ядра.
Какие модули PHP нужны
Вот полный список модулей, которые стоят на сервере, где SLOT-H работает уже много лет. На практике тебе понадобится подмножество, но лучше иметь всё - лишним не будет.
Установлены и работают:
`calendar, Core, ctype, curl, date, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmagick, hash, iconv, intl, json, libxml, mbstring, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_mysql, Phar, posix, psr, random, readline, Reflection, session, shmop, sockets, sodium, SPL, standard, sysvmsg, sysvsem, sysvshm, tokenizer, uploadprogress, xdebug, Zend OPcache, zlib`
Что из этого реально нужно для работы:
Для демо-версии:
- `mysqli` - для работы с MySQL
- `pdo_mysql` - альтернативный драйвер для MySQL
- `curl` - для HTTP-запросов и API
- `gd` - для работы с изображениями
- `mbstring` - для многобайтовых строк
- `json` - без JSON сейчас никуда
- `session` - для сессий пользователей
- `openssl` - для шифрования и безопасности
- `intl` - для интернационализации
- `zlib` - для сжатия
Опционально:
- `gmagick` - для продвинутой работы с графикой (если есть - хорошо, если нет - GD справится)
Для полной версии дополнительно:
- `pdo_pgsql` - для работы с PostgreSQL
- `mongodb` - для работы с MongoDB
- `redis` - для кэширования через Redis
- `memcached` - для кэширования через Memcached
Какая версия MySQL
MySQL 8.0+. Если у тебя стоит 5.7 - тоже заработает, но мы рекомендуем 8-ю версию. Она быстрее, удобнее и поддерживает современные возможности.
Если у тебя MariaDB - тоже подойдёт, если версия 10.3+.
Настройка веб-сервера
Минимальная конфигурация Apache для одного проекта выглядит так:
apache
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/your_project_path
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<Directory /var/www/your_project_path>
RewriteEngine on
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Для Nginx - аналогично. Главное: все запросы должны идти через index.php, если файл не существует физически.
В корне проекта лежит `.htaccess`, который уже делает всё необходимое:
apache
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*? index.php
Git и развёртывание
Ядро разворачивается через Git из репозитория:
bash
git clone https://github.com/Stalker23051974/slot-h.git
Никаких Composer. Никаких `npm install`. Никаких vendor-папок.
Склонировал - и работает.
Что если я использую общий хостинг?
Если у тебя не VPS, а обычный shared-хостинг с панелью - тоже работает.
Единственное обязательное условие:
> Доступ к выполнению консольных скриптов.
Без этого SLOT-H не поднимется.
Почему? Потому что после развёртывания нужно запустить `createAutoloader.php`. Это консольный скрипт, который строит граф зависимостей классов. Без него автолоадер не сгенерируется, и система не запустится.
Если у тебя есть SSH-доступ - всё просто:
bash
php Application/Tools/createAutoloader.php
Если SSH нет - в админ-панели хостинга должен быть эмулятор терминала. Многие панели (cPanel, ISPmanager, и т.п.) предоставляют такую возможность.
Если нет ни SSH, ни эмулятора терминала - SLOT-H на таком хостинге не запустится. Это единственное жёсткое ограничение.
Остальное - не важно:
- Можно загружать файлы по FTP
- Можно через файловый менеджер
- Можно через Git из панели
Главное - один раз запустить createAutoloader.
Резюме
Минимальный набор для старта:
- PHP 7.4 / 8.x + модули: mysqli, curl, gd, mbstring, json, session, openssl
- MySQL 8.0
- Apache / Nginx
- Git (для развёртывания)
- Доступ к консоли (SSH или эмулятор терминала)
- 2 vCPU, 4 GB RAM - за глаза
- 4 MB дискового пространства - базовая комплектация
Всё остальное - опционально и добавляется по мере необходимости.
Спойлер: если у тебя есть на чём крутить WordPress - SLOT-H запустится без проблем, но при одном условии: есть доступ к консоли.
Что дальше?
- ➡️ Раздел 03. Быстрый старт
- ➡️ Раздел 04. Философия
- ➡️ Раздел 05. Принципы работы