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. Принципы работы