Инструкция .env v200.1.0
Переменные ROOT/.env для DLE API: DEMO_MODE, DLEAPI_SECURE и настройки для локальных тестов.
Этот гайд про файл .env в корне сайта DLE — туда кладут флаги, которые перекрывают часть настроек из админки. Без него API тоже работает, но демо-режим и маскирование полей часто настраивают именно здесь.
Настройки в DevCraft (HMAC, TTL токена, профиль) живут в dleapi.json — см. Настройки. Здесь только то, что читается из .env.
Что нужно заранее
- Установка плагина
- Доступ к файлу
ROOT_DIR/.env(рядом сindex.phpсайта)
Корневой .env (сайт)
| Переменная | Зачем |
|---|---|
DEMO_MODE | Если true — API «играет в демо»: credentials могут пройти проверку, но access_token не выдаётся (null). Authorize уходит с error=demo_mode. Secure включается принудительно. |
DLEAPI_SECURE | Если true — в ответах CRUD (/table/…) маскируются пароли, IP, хеши и похожие поля. |
Пример для разработки (нужны настоящие токены):
DEMO_MODE=false
DLEAPI_SECURE=falseПример для продакшена:
DEMO_MODE=false
DLEAPI_SECURE=trueПочему токен пустой?
Если Postman или curl вернули access_token: null, а логин/ключ верные — почти всегда виноват DEMO_MODE=true. Поставьте false и перезапустите PHP (если кешируете env).
Как это стыкуется с админкой
| Откуда | Что задаёт |
|---|---|
| DevCraft → Настройки → «Маскировать чувствительные поля» | Базовый флаг secure в dleapi.json |
DLEAPI_SECURE=true | Включает маскирование даже если в админке выключили |
DEMO_MODE=true | Всегда secure + не выдаёт access_token |
Подробный чеклист продакшена: Безопасность. Пропуск Bearer и /me: Авторизация.
.env / phpunit для интеграционных тестов
Отдельно от корневого сайта тесты API могут читать переменные окружения (часто через api/phpunit.xml или api/.env):
| Переменная | Зачем |
|---|---|
API_BASE_URL | База до v2, напр. http://dle200.test/api/v2 |
API_KEY | Сырой ключ из DevCraft (для обмена на токен в тестах) |
OAUTH_CLIENT_ID | client_id тестового OAuth-клиента |
Эти переменные не заменяют DEMO_MODE / DLEAPI_SECURE на живом сайте — они только для PHPUnit.