# 📦 Установка Celena CMS

Пошаговая инструкция по установке на сервер. Занимает ~5 минут.

---

## 1. Что нужно от сервера

| Требование | Минимум |
|------------|---------|
| **PHP** | 8.3 или новее |
| **Расширения PHP** | `pdo`, `mbstring`, `json`, `openssl`, `zip`, `gd` (или `imagick`), плюс драйвер БД: `pdo_mysql` **или** `pdo_pgsql` |
| **База данных** | MySQL 8 / MariaDB 10.6+ **или** PostgreSQL 13+ |
| **Веб-сервер** | Apache (с `mod_rewrite`) или nginx |

Расширение `sodium` желательно (нужно только для маркетплейса плагинов), без него всё остальное работает.

> Проверять расширения заранее не обязательно — установщик на первом шаге сам покажет, чего не хватает.

---

## 2. Загрузка на сервер

1. Скачайте архив **`celena-cms-3.6.zip`** — https://celena.io/downloads/celena-cms-3.6.zip (обновление с прежней версии — см. `ОБНОВЛЕНИЕ.md`)
2. Загрузите его в корень сайта (например `public_html/` или `/var/www/site/`) — по FTP или через файловый менеджер хостинга.
3. Распакуйте прямо там. Должно получиться так, что `index.php` и `install.php` лежат в корне сайта.
4. Убедитесь, что каталоги **`storage/`** и **`public/uploads/`** доступны на запись (обычно уже так; при необходимости `chmod 775`).

---

## 3. Создание базы данных

Создайте пустую базу и пользователя к ней (в панели хостинга: phpMyAdmin / «Базы данных» / fastpanel).
Запишите: **хост, имя базы, пользователь, пароль**.

> Если пользователю БД дано право `CREATE DATABASE`, можно базу заранее не создавать — установщик создаст её сам. Но на большинстве хостингов проще создать базу вручную в панели.

---

## 4. Установка через браузер (рекомендуется)

1. Откройте в браузере: **`https://ваш-домен/install.php`**
2. Пройдите 3 шага мастера:
   - **Шаг 1 — Окружение.** Зелёные галочки = всё готово. Красные «Ошибка» нужно устранить (обычно — включить расширение PHP в панели хостинга).
   - **Шаг 2 — База данных.** Выберите СУБД (MySQL или PostgreSQL), введите хост, имя базы, пользователя и пароль. Нажмите «Проверить и продолжить».
   - **Шаг 3 — Сайт и администратор.** Название сайта, e-mail и пароль администратора (пароль — не короче 8 символов).
3. Нажмите **«Установить»**. Появится «Установка завершена».

После этого установщик:
- создаст файл `.env` с настройками и уникальным ключом `APP_KEY`;
- создаст все таблицы (ядро + плагины);
- заведёт администратора;
- **сам удалит `install.php`** и создаст `install.lock` (повторная установка блокируется).

**Готово.** Вход в панель: `https://ваш-домен/admin/login`

---

## 5. Установка через консоль (альтернатива, если есть SSH)

```bash
php bin/celena install \
  --db=mysql \
  --db-host=127.0.0.1 \
  --db-name=имя_базы \
  --db-user=пользователь \
  --db-pass=пароль \
  --admin-email=admin@site.com \
  --admin-pass=пароль_админа \
  --url=https://ваш-домен \
  --site-name="Мой сайт"
```

- Для PostgreSQL: `--db=pgsql` (порт по умолчанию подставится сам: 3306 для MySQL, 5432 для PostgreSQL).
- Параметр `--db-prefix=cl_` задаёт префикс таблиц (по умолчанию `cl_`).
- После успеха команда сама удалит `install.php`.

---

## 6. После установки

- **Обязательно удалите `install.php`**, если он вдруг остался в корне (при веб- и CLI-установке он удаляется автоматически).
- Проверьте, что сайт открывается: `https://ваш-домен/` должен отдавать 200.
- Настройте веб-сервер:
  - **Apache** — правила уже в `.htaccess` (нужен `mod_rewrite`).
  - **nginx** — возьмите за основу `nginx.conf.example` из архива (там же настроен кэш статики и запрет доступа к служебным каталогам).

---

## 7. Если что-то пошло не так

| Симптом | Причина и решение |
|---------|-------------------|
| Открывается `install.php` вместо сайта | Установка не завершена. Пройдите мастер до конца — появится `install.lock`. |
| «CMS уже установлена» (403) | В корне есть `install.lock`. Так и должно быть после установки. Для переустановки — удалите `install.lock` (и при необходимости очистите базу). |
| «Требуется PHP 8.3 или новее» | Переключите версию PHP в панели хостинга. |
| «Неверный логин или пароль БД» | Проверьте данные из шага 3. |
| «Сервер БД недоступен» | Неверный хост/порт. На большинстве хостингов хост — `127.0.0.1` или `localhost`. |
| Ошибка про UTF-8 | Название сайта/имя администратора введены не в UTF-8. Введите заново обычным текстом. |
| Белый экран / 500 после установки | Проверьте права на запись `storage/`; загляните в `storage/logs/`. |

---

**Celena CMS работает одинаково на MySQL и PostgreSQL** — выбирайте ту СУБД, что удобнее на вашем хостинге.
