【问题标题】:Auto detect environment in laravel在 laravel 中自动检测环境
【发布时间】:2015-12-10 00:38:26
【问题描述】:

我最近开始在 Laravel 中开发一个应用程序。我在 2 台机器(家用工作站和笔记本电脑)上进行开发,并将在另一台机器上运行“生产”应用程序。

在这些机器上有几个不同的设置(最值得注意的是 DB_USERNAME/DB_PASSWORD

让 laravel 自动检测其运行环境的最佳方法是什么(例如通过主机名或 ip)?

我找到了一些教程,如 https://mattstauffer.co/blog/laravel-5.0-environment-detection-and-environment-variableshttp://developers.ph/laravel-framework/laravel-5/how-to-setup-multiple-environment-for-laravel-5-developers-way/,但它们似乎依赖于手动设置环境而不是检测它。

【问题讨论】:

  • 我想你回答了你自己的问题。使用环境变量可能是最好的方法。您可以在 Apache/Nginx 虚拟主机中设置变量。
  • 您应该将环境相关设置放在 .env 文件中。此文件不应在主机之间共享
  • 你必须在某个地方设置环境值(在这种情况下,它是 .env 文件)因为除非你告诉系统,它怎么知道它是哪个环境?

标签: php laravel-5


【解决方案1】:

查看 Laravel 安装的根目录,将有一个 .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

【讨论】:

  • 好的,我想太多了,只是复制所有内容,包括 .env 文件。我现在看到最好复制除 env 文件之外的所有内容。
猜你喜欢
  • 1970-01-01
  • 2015-01-01
  • 1970-01-01
  • 2014-03-10
  • 2017-06-19
  • 2015-03-29
  • 1970-01-01
  • 2014-05-05
  • 2014-11-18
相关资源
最近更新 更多