如何更改Laravel 5.1中的环境?
How to change the environment in Laravel 5.1?
我对 Laravel 中环境工作的理解是,对于不同的良好环境,您有不同的环境。因此,如果您在本地 运行 您的应用程序,您可能会有一个 .env.local
文件。如果您正在测试或生产,您可以使用 .env.testing
或 .env.production
。 (如有错误请指正)
默认情况下,我们得到可以编辑的 .env
文件。但是谁能告诉我在 Laravel 中更改环境的工作流程是什么?我尝试了文档,但无法获取。请帮我。
.env.local.php
、.env.production.php
的想法自 Laravel 5 以来已被弃用。现在,在 L5 中,我们只有一个 .env
文件,您可以在其中存储所有环境配置。要定义您的环境,您应该将 APP_ENV=local
放入此文件。
将项目部署到生产环境后,您将在服务器上创建 .env
文件并定义 APP_ENV=production
如果您使用像 Laravel Forge 这样的服务,它会为您提供存储环境数据的简单好方法。但那是另一个故事:)
编辑
要使用多个数据库连接,您可以执行以下操作:
在您的 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');
这样您就可以从您的辅助 mysql 连接中获得结果,无论您的环境中设置了什么
当您安装 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
我对 Laravel 中环境工作的理解是,对于不同的良好环境,您有不同的环境。因此,如果您在本地 运行 您的应用程序,您可能会有一个 .env.local
文件。如果您正在测试或生产,您可以使用 .env.testing
或 .env.production
。 (如有错误请指正)
默认情况下,我们得到可以编辑的 .env
文件。但是谁能告诉我在 Laravel 中更改环境的工作流程是什么?我尝试了文档,但无法获取。请帮我。
.env.local.php
、.env.production.php
的想法自 Laravel 5 以来已被弃用。现在,在 L5 中,我们只有一个 .env
文件,您可以在其中存储所有环境配置。要定义您的环境,您应该将 APP_ENV=local
放入此文件。
将项目部署到生产环境后,您将在服务器上创建 .env
文件并定义 APP_ENV=production
如果您使用像 Laravel Forge 这样的服务,它会为您提供存储环境数据的简单好方法。但那是另一个故事:)
编辑
要使用多个数据库连接,您可以执行以下操作:
在您的 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');
这样您就可以从您的辅助 mysql 连接中获得结果,无论您的环境中设置了什么
当您安装 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