Автоопределение среды в Laravel

1

Недавно я начал разработку приложения в Laravel. Я разрабатываю на двух машинах (домашней рабочей станции и ноутбуке) и запускаю приложение "производство" на других машинах.

На этих машинах существует несколько настроек (наиболее заметный DB_USERNAME/DB_PASSWORD

Каким будет лучший способ автоматического обнаружения laravel среды, в которой он работает (например, по имени хоста или ip)?

Я нашел несколько руководств, таких как https://mattstauffer.co/blog/laravel-5.0-environment-detection-and-environment-variables и http://developers.ph/laravel-framework/laravel-5/how-to-setup -multiple-environment-for-laravel-5-developers-way/ но они, похоже, полагаются на настройку среды где-то вместо того, чтобы ее обнаружить.

  • 1
    Я думаю, что вы ответили на свой вопрос. Использование переменных среды, вероятно, лучший способ сделать это. Вы можете установить переменные в вашем Apache / Nginx vhost.
  • 3
    Вы должны поместить настройки, связанные с окружающей средой, в файл .env. Этот файл не должен быть общим для хостов
Показать ещё 1 комментарий
Теги:
laravel-5

1 ответ

2
Лучший ответ

Посмотрите, в корне вашей установки Laravel будет файл .env содержащий вашу конфигурацию, - установите их, но не .env их в свой источник. Содержание файла ниже.

APP_ENV=local
APP_DEBUG=true

DB_HOST=localhost
DB_DATABASE=database
DB_USERNAME=root
DB_PASSWORD=root

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

MAIL_DRIVER=mandrill
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
  • 0
    Хорошо, я слишком много думал о том, чтобы просто скопировать все, включая файл .env. Теперь я вижу, что лучше всего скопировать все, кроме файла env.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню