Laravel: используйте разные файлы env для разных доменов для мультитенантного приложения

Я пытаюсь создать мультитенантное приложение.

Другими словами, у меня есть веб-сайт, но он имеет несколько разных версий с разным брендом, переменными env и подключениями к базе данных. Эти сайты:

  • sites1.test
  • sites2.test

Самый простой способ сделать это в Laravel - использовать 2 разных файла env: .env.site1 и .env.site2.

Это означает, что для ремесленных команд я могу просто:

  • artisan migrate --env=site1 для команд сайта 1
  • artisan migrate --env=site2 для команд сайта 2

У меня проблема с HTTP-запросами. Как я могу настроить laravel так, чтобы он:

  • Использует .env.site1 на сайте site1.test
  • Использует .env.site2 на сайте site.test

Я также думаю, что при кешировании .env файла могут возникнуть проблемы.

Кроме того, есть ли потенциально лучший способ сделать многопользовательскую аренду.


person Yahya Uddin    schedule 09.06.2019    source источник
comment
вы это просматривали? laravel-tenancy.com   -  person msbomrel    schedule 09.06.2019
comment
Этот gist.github.com/msankhala/3c282abf546318a2662e может дать вам некоторое представление.   -  person Prafulla Kumar Sahu    schedule 10.06.2019


Ответы (1)


Предположим, вы хотите иметь одну промежуточную среду и одну рабочую среду. Итак, создайте один .env.staging и один .env.production. Затем удалите все строки в файле .env, кроме APP_ENV. Установите этот ключ на промежуточное или производственное:

APP_ENV=production

Затем в вашем .env.production измените любые строки, которые вы хотите, а затем перейдите в .env.staging и внесите различные изменения, которые соответствуют вашим потребностям.

person Matin Hajatdoost    schedule 09.06.2019
comment
производство и постановка - лишь некоторые примеры. Вы можете настроить их на все, что захотите. Например, .env.site1 и .env.site2, а затем установите APP_ENV в файле .env в одну из этих сред. - person Matin Hajatdoost; 09.06.2019
comment
Также вы можете проверить эту ссылку [ссылка] (laravel.com/docs/5.8/configuration ) - person Matin Hajatdoost; 09.06.2019