67

当我跑步时,$ php artisan env我得到;

Current application environment: production

我怎样才能将其更改为开发或类似的东西?所以我可以看到错误。我已经阅读了很多文档,但是对于新手来说理解起来一点也不容易。我没有服务器配置经验,真的。

我确信有“聪明”的方法可以做到这一点,但我现在感兴趣的只是手动改变环境。我该怎么做呢?

4

5 回答 5

98

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

APP_ENV=development

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

APP_DEBUG=true

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

于 2015-02-25T13:24:40.033 回答
52

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

# .env
APP_ENV=local

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

# .env
APP_ENV=production
于 2015-02-25T13:30:15.943 回答
40

php artisan config:clear对 .env 文件进行更改后,不要忘记运行命令。再次这样做php artisan env,这将返回正确的版本。

于 2017-05-25T21:48:40.150 回答
6

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

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

$envFile = '.env';
// change $envFile conditionally here
$app->loadEnvironmentFrom($envFile);
于 2015-03-19T13:06:24.507 回答
-4

在 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')
));
于 2015-02-25T13:32:38.940 回答