我对 Laravel 环境的工作原理的理解是,你可以为不同的环境配置不同的环境变量文件。如果你在本地运行应用程序,可以使用 .env.local
文件;如果你在测试或生产环境下,则可以使用 .env.testing
或 .env.production
。(如果我理解有误,请纠正我。)
默认情况下,我们可以编辑 .env
文件。但是有没有人能告诉我如何更改 Laravel 中的环境?我已经查看了文档,但是无法理解。请帮帮我。
我对 Laravel 环境的工作原理的理解是,你可以为不同的环境配置不同的环境变量文件。如果你在本地运行应用程序,可以使用 .env.local
文件;如果你在测试或生产环境下,则可以使用 .env.testing
或 .env.production
。(如果我理解有误,请纠正我。)
默认情况下,我们可以编辑 .env
文件。但是有没有人能告诉我如何更改 Laravel 中的环境?我已经查看了文档,但是无法理解。请帮帮我。
当你安装 Laravel 5.1 时,会获得两个文件.env
和.env.example
。如果想在本地工作,则需要设置:
APP_ENV=local
APP_DEBUG=true
在生产中您设置
APP_ENV=production
APP_DEBUG=false
调试模式下的错误信息
生产模式下的错误信息
注:您有两个.env文件.env
和.env.example
,您还可以创建另一个名为.env.production
的文件,但请记住,为了加载您的配置,您必须将文件重命名为.env
编辑:所以,如果您仍在本地工作并需要另一个数据库进行测试,您可以创建另一个文件,因此您总共有3个.env文件:
.env.production
.env.local1
.env.local2
每当您想切换配置时,只需将所需的文件重命名为 .env。
.env.local.php
和 .env.production.php
的想法已被弃用。现在,在 L5 中,我们有一个单一的 .env
文件,您可以将所有环境配置存储在其中。要定义您的环境,您应该将 APP_ENV=local
放入此文件中。.env
文件并定义 APP_ENV=production
。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' => '',
),
),
.env
文件中添加另一个键。DEFAULT_DB_CONNECTION=another_mysql
$users = DB::connection('another_db_connection')->select('users somehow');
.env.testing
文件,该文件定义了与测试环境相关的设置。 - Almazik G另一种轻松切换环境的方法 - 是强制缓存所需的.env
文件。例如,我在我的开发环境中有以下.env
:
.env
- 用于本地开发.env.testing
- 用于单元测试.env.staging
- 用于使用暂存数据库的本地测试要快速切换.env
,只需运行以下命令:
php artisan config:cache --env=staging
或者使用别名:
art config:cache
- 这将缓存.env