Введение в UniSite CMS

Добро пожаловать в документацию UniSite CMS! Это гибкая и быстрая система управления контентом, созданная для современных веб-проектов. Здесь вы найдете всё для успешного старта.

Подготовка сервера

Для установки UniSite CMS вам понадобится VDS или VPS. В этой статье мы расскажем как зарегистрировать и выбрать не дорогой VPS для ваших проектов. Читать статью

Настройка окружения

Для установки UniSite CMS вам понадобится PHP 8.3 или 8.4 и база данных MySQL или PostgreSQL. Процесс установки максимально автоматизирован, но перед началом требуется выполнить базовую настройку сервера и установить необходимые модули PHP.

Необходимые модули PHP:

PDO, ionCube Loader, ZIP, imagick, GD, openssl, mbstring, curl

Рекомендуемые параметры PHP:

Параметр memory_limit. Выделенная память, должно быть от 512 мб

Параметр max_execution_time. Время выполнения скрипта, должно быть от 300 секунд

Параметр post_max_size. Размер загружаемых файлов, должно быть от 256 мб

Параметр upload_max_filesize. Размер загружаемых файлов, должно быть от 256 мб

Установка

1. Классическая установка

Простая установка через установщик которая подходит для большинства пользователей. Читать статью

2. Установка через CLI

Данный метод позволяет быстро развернуть UniSite CMS через CLI (Command Line Interface — интерфейс командной строки).

Зайдите в консоль вашего сервера с root правами и перейдите в директорию сайта куда будет произведена установка. Далее запустите команду указанную ниже:

install_unisite.sh
wget https://unisite.org/repo/install_unisite.sh && chmod +x install_unisite.sh && sudo ./install_unisite.sh

После запуска файла укажите ключ лицензии для вашего домена. Перед запуском установки проверьте наличие требуемых модулей PHP на сервере. Отсутствие модулей приведёт к прерыванию установки.

После установки удалите файл install_unisite.sh

Разработчикам

Доработки и изменения в коде

Вся логика компонентов и контроллеров находится в папке core, при добавлении новых функций или изменений существующих небходимо делать это в папке core

После любых изменений в папке core небходимо запустить команду для пересборки файлов. Для этого авторизуйтесь в админ панели, роль у вас должна быть супер админ. Далее запустите в URL строке: https://вашсайт.ru/ваш-алиас-админ-панели/compile-core. После выполнения - файлы собирутся в папке app/Components, app/Http/Controllers, app/Systems/User.php, app/Systems/Ui.php, app/Systems/System.php, app/Systems/Notify.php, app/Systems/Event.php, app/Systems/Api.php

Внимание!
Не вносите изменения в файлы из папки app/Components, app/Http/Controllers, app/Systems/User.php, app/Systems/Ui.php, app/Systems/System.php, app/Systems/Notify.php, app/Systems/Event.php, app/Systems/Api.php. Так как вы можете их потерять при последующих обновлениях системы.

Почему функции в папке core?
Такая логика сделана для обновлений, чтобы нам при обновлении не заменять целиком файлы компонентов и контроллеров, а была возможность делать это точечно, чтобы ваши функции или изменения не перезаписались. Но если изменения были в том файле которое участвовало в обновлении, то файл перезапишется. Рекомендуем всегда перед обновлением делать копии файлов, чтобы потом можно было восстановить ваши доработки.

Изменения в шаблоне сайта
Вы можете свободно делать различные изменения в шаблоне сайта, так как при обновлении шаблон не перезаписывается, а при необходимости файлы шаблона, js файлы обновляются точечно, стили CSS при этом так же не обновляются.

Структура системы

Система состоит из 7-ми основных папок:

app - Папка содержить: дополнения, компоненты, контроллеры, модели и системные файлы
config - Папка содержит различные файлы настроек: подключение к бд, телефонные коды, временные зоны и различные системные настройки
core - Папка содержит файлы функций компонентов и контроллеров
resources - Папка содержит файлы почтовых писем, админ панели и сайта
routes - Папка содержит все маршруты системы
storage - Папка содержит изображения, файлы, временные файлы загруженные на сайт, кэш, изображения товаров и пользователей
vendor - Папка содержит различные зависимости модулей и пакетов

Содержание папки App

Addons - Папка содержить модули для: платежных систем, смс сервисов, сервисов авторизации, мессенджеры, сервисы доставок, поставщики карт, сервисы SMTP.
Components - Папка содержит файлы отвечающие за функционал системы, данные файлы и функции собираются из папки core
Http - Папка содержит контроллеры. Контроллеры отвечают за вывод контента, они тесно связаны с роутами из папки routes
Models - Папка содержит модели всех таблиц из базы данных. Модели нужны для создания запросов в конкретную таблицу
Services - Папка содержит системные зависимости
Systems - Папка содержит различные системные файлы

Распространенные ошибки и их решения

Не загружается видео на сайте

Для загрузки и конвертации видео используется специальный пакет ffmpeg который ставится на сервер. Для установки необходимо зайти в консоль сервера под правами root и выполнить команду sudo apt install ffmpeg после установки на сайте будет доступна загрузка видео.

При установке CMS прогресс замирает

Чаще всего это означает, что не хватает памяти и времени на скачивание дистрибутива. Проверьте вашу конфигурацию PHP:

Параметр memory_limit. Выделенная память, должно быть от 512 мб

Параметр max_execution_time. Время выполнения скрипта, должно быть от 300 секунд

Параметр post_max_size. Размер загружаемых файлов, должно быть от 256 мб

Параметр upload_max_filesize. Размер загружаемых файлов, должно быть от 256 мб

После обновления системы много ошибок

Чаще всего проблемы из-за кэша браузера. Многие данные кэшируются браузером, чтобы пользователю отдавать статику и открывать сайты быстрее. Если что-то меняется на сайте, стили, картинки, js скрипты и т.п, то это повод обновить кэш.

Сайт грузится очень медленно

Не всегда проблема в CMS, может долго грузится какой-то JS скрипт или виджет метрики, онлайн консультанта, причин может быть много. Для определения проблемы отключите установленные виджеты если они есть, а так же ВПН если вы его используете.

Постоянно вылетает авторизация

Для решения этой проблемы нужно увеличить время хранения сессий на сервере. Для этого откройте конфигурацию PHP которую использует сайт и увеличьте значение session.gc_maxlifetime - время (в секундах), после которого неактивная сессия может быть удалена сборщиком мусора; session.cookie_lifetime - время жизни cookie с идентификатором сессии (если 0, cookie живёт до закрытия браузера).