Php 如何改变Laravel 5.1中的环境?

Php 如何改变Laravel 5.1中的环境?,php,laravel,environment-variables,production-environment,test-environments,Php,Laravel,Environment Variables,Production Environment,Test Environments,我对Laravel环境工作的理解是,对于不同的、良好的环境,您有不同的环境。因此,如果您在本地运行应用程序,您可能会有一个.env.local文件。如果您正在测试或正在生产中,则可以使用.env.testing或.env.production(如果我错了,请纠正我。 默认情况下,我们得到可以编辑的.env文件。但有谁能告诉我,改变拉威尔环境的工作流程是什么。我试过文档,但没能得到。请帮帮我 拥有.env.local.php,.env.production.php的想法自Laravel 5以来一直

我对Laravel环境工作的理解是,对于不同的、良好的环境,您有不同的环境。因此,如果您在本地运行应用程序,您可能会有一个
.env.local
文件。如果您正在测试或正在生产中,则可以使用
.env.testing
.env.production
(如果我错了,请纠正我。

默认情况下,我们得到可以编辑的
.env
文件。但有谁能告诉我,改变拉威尔环境的工作流程是什么。我试过文档,但没能得到。请帮帮我

拥有
.env.local.php
.env.production.php
的想法自Laravel 5以来一直遭到反对。现在,在L5中,我们有一个
.env
文件,您可以在其中存储所有环境配置。要定义您的环境,您应该将
APP_ENV=local
放入此文件

一旦将项目部署到生产环境中,您将在服务器上创建
.env
文件并定义
APP\u env=production

如果您使用像LaravelForge这样的服务,它将为您提供存储环境数据的简单方法。但这是另一个故事:)

编辑 要使用多个db连接,可以执行以下操作:

config/database.php
文件中

<?php
return array(

'default' => env('DEFAULT_DB_CONNECTION', 'mysql'),

'connections' => array(

    # Our primary database connection
    'mysql' => array(
        'driver'    => 'mysql',
        'host'      => 'host1',
        'database'  => 'database1',
        'username'  => 'user1',
        'password'  => 'pass1'
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

    # Our secondary database connection
    'another_mysql' => array(
        'driver'    => 'mysql',
        'host'      => 'host2',
        'database'  => 'database2',
        'username'  => 'user2',
        'password'  => 'pass2'
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),
),
当然,这会预先定义您的连接。如果您想成为动态的,可以执行以下操作

$users = DB::connection('another_db_connection')->select('users somehow');

这样,无论在您的环境中设置了什么,您都可以从辅助mysql连接中获得结果。安装Laravel 5.1时,您将获得两个文件
.env
.env.example
如果要在本地工作,请设置:

APP_ENV=local
APP_DEBUG=true
在你设置的prod中

APP_ENV=production
APP_DEBUG=false
调试模式下的错误消息

来自生产模式的错误消息

注意:您有两个.env文件
.env
.env.example
。。您还可以创建另一个名为
.env.production
的文件,但请记住,为了加载配置,您必须将文件重命名为
.env

编辑:因此,如果您仍在本地工作,并且需要另一个数据库进行测试,您可以创建另一个文件,这样您总共有3个.env文件:

.env.production
.env.local1
.env.local2

每当您想要切换配置时,只需将所需文件重命名为.env

如果我们仍在本地工作,并且需要另一个数据库配置进行测试,该怎么办。那样的话,我们该怎么办?非常感谢你的帮助。我很感激。:)@HomoSapien我相信你已经明白了这一点:)但是任何寻找答案的人-你现在(在Laravel 6和更高版本中)在项目根目录中创建了一个全新的
.env.testing
文件,该文件定义了特定于测试环境的设置非常感谢你的帮助。我很感激。:)
.env.production
.env.local1
.env.local2