当我跑的$ php artisan env时候我得到

Current application environment: production

如何将其改为开发或类似的东西?所以我可以看到错误..我已经阅读了很多文档,但新手的理解并不容易。我没有服务器配置体验,真的。

我相信有这样做的“聪明”的方式,但是我现在感兴趣的是手动改变环境。我该如何做?

分享
 

4答案 正确答案

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

APP_ENV=development

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

APP_DEBUG=true

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

分享
 
   
那么每个服务器/环境都有它自己的.env文件?是对的吗? -  mikelovelyuk 二月25 '15在14:05
2 
您有一个.env文件,但运行应用程序的每台计算机上的内容可能不同。例如,在您的本地机器上,您将拥有APP_ENV=developmentAPP_DEBUG=true,但在您的生产服务器上的值将是APP_ENV=productionAPP_DEBUG=false -  博格丹 2月25日15日14时35分
   
那么是的,每个服务器/环境都有自己的.env文件。 -  博格丹 2月25日15时14分46分
   
@Bogdan在我使用Composer的情况下,我应该在生产环境中让供应商文件夹设置APP_ENV =生产后? -  Zl3n Sep 16 '15 at 22:09
   
@ Zl3n你问你是否应该将该vendor文件夹与应用程序的其余部分一起部署,或者composer install在生产服务器上运行 -  博格丹 9月16日,星期二22:18
 

Laravel 5使用.env文件配置您的应用程序。.env不应该在您的存储库中提交,例如github或bitbucket。在您当地的环境中,您.env将看起来如下:

# .env
APP_ENV=local

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

# .env
APP_ENV=production
分享
 

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

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

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

在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')
));
分享
 
1 
问题是Laravel 5.你的解决方案是Laravel 4.在L5中没有bootstrap/start.php文件了。 -  博格丹 2月25日15时13分35分
1 
来自  http://stackoverflow.com/questions/28719966/laravel-5-how-to-switch-from-production-mode