Laravel 5 如何从生产模式切换

Laravel 5 How to switch from Production mode

当我运行$ php artisan env我得到;

Current application environment: production

如何将其更改为开发或类似的东西?所以我可以看到错误.. 我已经阅读了 a lot of the documentation 但对于新手来说理解起来一点也不容易。我真的没有服务器配置经验。

我确定有 "smart" 方法可以做到这一点,但我目前感兴趣的是手动更改环境。我该怎么做?

Laravel 5 从位于项目根目录的 .env 文件中获取与环境相关的变量。你只需要将 APP_ENV 设置为任何你想要的,例如:

APP_ENV=development

用于识别当前环境。如果你想显示错误,你需要在同一个文件中启用调试模式:

APP_DEBUG=true

.env 文件的作用是允许您根据您的应用程序在哪台机器上进行不同的设置。运行。因此在您的生产服务器上,.env 文件设置将与您的本地开发环境不同。

Laravel 5 使用 .env 文件配置您的应用程序。 .env 不应提交到您的存储库,如 github 或 bitbucket。在您的本地环境中,您的 .env 将如下所示:

# .env
APP_ENV=local

对于您的生产服务器,您可能具有以下配置:

# .env
APP_ENV=production

在 Laravel 中,默认环境始终是生产环境。

您需要做的是在 bootstrap/start.php 中为您的环境指定正确的主机名,例如:

/*
|--------------------------------------------------------------------------
| Detect The Application Environment
|--------------------------------------------------------------------------
|
| Laravel takes a dead simple approach to your application environments
| so you can just specify a machine name for the host that matches a
| given environment, then we will automatically detect it for you.
|
*/

$env = $app->detectEnvironment(array(
    'local' => array('homestead'),
    'profile_1' => array('hostname_for_profile_1')
));

你也可以看看暴露的方法Application->loadEnvironmentFrom($file)

我需要一个应用程序才能 运行 在多个子域上。所以在 bootstrap/app.php 中我添加了类似的内容:

$envFile = '.env';
// change $envFile conditionally here
$app->loadEnvironmentFrom($envFile);

不要忘记在对 .env 文件进行更改后 运行 命令 php artisan config:clear。再次执行此操作 php artisan env,这将 return 正确的版本。