Laravel 5环境总是“Production”,而实际上是“Local”。

内容来源于 Stack Overflow,遵循 CC BY-SA 4.0 许可协议进行翻译与使用。IT领域专用引擎提供翻译支持

腾讯云小微IT领域专用引擎提供翻译支持

原文
Stack Overflow用户 修改于2015-10-04
  • 该问题已被编辑
  • 提问者: Stack Overflow用户
  • 提问时间: 2015-10-04 23:16

我正在尝试设置两个环境:本地和生产。

到目前为止,我已经添加了一个 bootstrap/environment.php 文件,它是:

$env = $app->detectEnvironment(array(
    'local' => array('Ben'),
    'staging' => array('staging.domain.org'),
    'production' => array('domain.org'),
));

和两个 .env 文件- .local.env .production.env ,使用不同的环境变量,例如: APP_ENV=local APP_DEBUG=true

我的笔记本电脑的主机名是 Ben

我遇到的问题是 php artisan env 总是返回 Production ,因此,我无法加载我的应用程序。

此外,在 production.env 文件中,如果我将 APP_DEBUG 变量更改为true或false,也不会对web应用程序产生影响-它总是返回“哇,看起来好像出了什么问题。”

任何帮助都将不胜感激。谢谢。

浏览 133 关注 0 得票数 3
  • 得票数为Stack Overflow原文数据
原文

3 个回答

高票数
回答于2016-01-07
得票数 1

这让我在Laravel 5中烦透了。我修复它的方法是在bootstrap/app.php的末尾添加以下代码:

    $app->detectEnvironment(function () use($app) {
        $env = env('APP_ENV', 'local');
        $file = ".env.{$env}";
        $app->loadEnvironmentFrom($file);
    });

然后为每个环境添加文件,例如.env.local、.env.production等。

现在,您可以通过设置APP_ENV环境变量来交换环境文件。如果未设置APP_ENV,则代码默认为'.env.local‘。使用以下命令进行测试:

    $ APP_ENV=production ./artisan env
    Current application environment: production
    $ ./artisan env
    Current application environment: local

Laravel在运行phpunit时自动将APP_ENV设置为'testing‘(特别是在Foundation/Testing/TestCase类中),所以如果你想在运行测试时使用不同的数据库设置等,请确保你有一个'.env.testing’文件。

回答于2016-02-17
得票数 11

我也遇到过这样的问题。我使用的是带有homestead的Laravel 5.2.14。我修复了添加以下行的问题:

'env' => env('APP_ENV', 'production'),

在文件中: config\app.php

我从以前的版本升级了我的Laravel应用程序,这个版本不包含这一行,或者至少我没有它。文件的最新版本位于:

https://github.com/laravel/laravel/blob/master/config/app.php

修改于2021-09-10
  • 该回答已被编辑
  • 回答者: Stack Overflow用户
  • 回答时间: 2021-09-09 15:55
得票数 0

转到laravel中的.env文件并设置您的

PAYTM_ENVIRONMENT=production
PAYTM_MERCHANT_ID={// Your production MID}