.env
Определение: .env — это файл с переменными окружения проекта, где обычно хранят конфиденциальные настройки: ключи API, пароли, токены, доступы к базе данных и почте. Приложение читает эти значения при запуске, чтобы не держать секреты прямо в коде.
Зачем это нужно
- Отделяет секреты и настройки от репозитория с кодом (меньше риск случайной утечки).
- Упрощает перенос сайта между окружениями: dev / staging / production — разные значения, один код.
- Позволяет быстро менять параметры без правок файлов приложения (например, домен, режим отладки, SMTP).
- Помогает ограничить доступ: разработчики видят код, но не обязаны видеть продакшн-ключи.
- Снижает вероятность «положить» сайт из-за неверной конфигурации при обновлениях.
Пример
Пример кода:
# .env (пример содержимого)
APP_ENV=production
APP_DEBUG=false
APP_URL=https://example.ru
DB_HOST=localhost
DB_NAME=site_db
DB_USER=site_user
DB_PASSWORD=strong_password
SMTP_HOST=smtp.example.ru
SMTP_USER=mailer@example.ru
SMTP_PASSWORD=mailer_password
Важно: сам файл .env не должен быть доступен из браузера и обычно не должен попадать в публичный репозиторий. Доступ к нему нужен только серверу и администратору.
Скриншот
Подпись к скриншоту: показать, где лежит .env (вне публичной папки сайта или с запретом раздачи веб-сервером) и что он не попадает в публичный доступ.
Частые ошибки
- Случайно коммитить .env в репозиторий (особенно публичный) и «светить» ключи и пароли.
- Хранить .env в публичной директории сайта без запрета на выдачу — его могут скачать.
- Включать отладку в продакшене через переменные (например, APP_DEBUG=true) и раскрывать технические детали.
- Использовать одинаковые секреты для dev и production — при утечке страдают все окружения.
- Давать слишком широкие права на файл (чтобы его мог читать/менять кто угодно на сервере).
Связанные термины
- Переменные окружения
- Секреты (API keys, токены)
- Права на файлы
- Gitignore
- Конфигурация
- Деплой
Наши услуги
- Техническая поддержка сайтов — проверим, что .env не доступен извне, настроим права и безопасное хранение секретов.
- Доработка сайтов — вынесем конфиги и ключи из кода в переменные окружения, настроим окружения dev/prod.
- Создание корпоративных сайтов — развернём проект с правильной конфигурацией и базовой безопасностью по умолчанию.