【问题标题】:Missing the point: Laravel 5 environment setup漏点:Laravel 5 环境设置
【发布时间】:2015-05-12 01:46:11
【问题描述】:

因此,对于我的应用程序,我看到它可以在 4 种类型的环境下运行:

  1. 在我的机器上本地
  2. 在我使用 Homestead 的虚拟机上本地
  3. 分期
  4. 生产

每个环境的数据库连接性(数据库类型、与数据库凭据的连接性等)都不同。

在我的 bootstrap/start.php 中我设置了这个:

$env = $app->detectEnvironment(array(
    'local' => array('localhost'),
    'localStaging' => array('mylocalStage.dev'),
    'staging' => array('myapp-stage.com'),
    'production' => array('myapp.com'),
));

如何强制执行这些设置?我在哪里设置当我在“本地”时我会使用一些本地设置?目前当我使用

php artisan env

在我的根应用程序文件夹中,我得到:

Current application environment: production

为什么不接我是“本地人”?

【问题讨论】:

  • 我的生成 laravel-5 项目在其结构中没有任何 env.example 或任何 .env 文件——这就是我所缺少的吗?我在哪里可以帮助它从“生产”变为“本地”?我没有做任何改变“php artisan env”的决定
  • 在根目录中,您应该有一个 .env 文件(请注意它没有名称,因此您可能需要执行 ls -a 才能看到它)。在此文件中,您设置环境的配置并使用 git.ignore 以便为每个环境提供唯一的配置,并且在您的代码中您应该使用$app->detectEnvironment()
  • 做了一个 ls -a -- 没有这样的文件。我可以以某种方式生成它吗?

标签: php laravel laravel-5


【解决方案1】:

在 cmets 和聊天中讨论了这个问题后,得出的结论是使用 laravel 5 中引入的新的 .ENV 方法。

这意味着,您的根目录中应该有一个 .env 文件,其中包含当前环境的设置。

因此,对于本地环境,您的 .env 文件将具有与生产环境的 .env 文件不同的设置。

默认情况下,您应该有一个 .env.example 文件,以防万一 - 您可以从 git (.env.example@git) 复制默认内容。

请注意,当您将本地版本更新(推送)到暂存(例如)时,您不会覆盖 .env 文件。为了防止出现此类问题,您可以使用 git ignore(因此它会跳过该文件)。

【讨论】:

    猜你喜欢
    • 2015-04-19
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-01
    相关资源
    最近更新 更多