如何解决 Exception It is unsafe to 运行 Dusk in production in laravel 5.5?

How to solve Exception It is unsafe to run Dusk in production in laravel 5.5?

我将我的项目从 laravel 5.4 升级到 laravel 5.5 ,

我在本地环境中没有任何问题,但在服务器中出现此异常,

我搜索了很多,我知道这个问题可能重复但没有解决方案解决我的问题!

生产环境怎么不注册dusk?

我在 AppServiceProvider.php 中写了这段代码:

public function register()
{
    // Dusk, if env is appropriate
    if ($this->app->environment('local', 'testing')) {
        $this->app->register(DuskServiceProvider::class);
    }
}

但它似乎不起作用。 有人可以帮忙吗?

已编辑: 我的 composer.json 文件:

 "require-dev": {
    "filp/whoops": "~2.0",
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "1.*",
    "phpunit/phpunit": "^7.0.3",
    "symfony/css-selector": "4.0.*",
    "symfony/dom-crawler": "4.0.0",
    "barryvdh/laravel-ide-helper": "^2.4",
    "laravel/dusk": "^2.0"
  },

例外情况是:

Exception
It is unsafe to run Dusk in production.

看,它不起作用,因为它被配置为在 localtesting 环境下工作。 我想你需要添加 'production' (如果你的作品在你的 .env 文件环境中被称为 'production:

AppServiceProvider

public function register()
{
    // Dusk, if env is appropriate
    if ($this->app->environment('local', 'testing', 'production')) {
        $this->app->register(DuskServiceProvider::class);
    }
}

安装到生产服务器时,我只需要使用 --no-dev 标志

composer install --no-dev

祝你好运!

在 Laravel 5.5 中,包是自动发现和加载的,因此您可能需要告诉它不要加载 dusk。

一种方法是将其添加到您的 composer.json

"extra": {
    "laravel": {
        "dont-discover": [
            "laravel/dusk"
        ]
    }
},

此外,您可以将它添加到您的开发依赖项中,当您在生产中部署时,使用:

composer install --no-dev

泰勒写了一篇关于它的文章here

如果您在开发环境中遇到此问题并且由于标题而意外登陆这里,您应该检查您的 .env 文件是否已设置为了发展。它应该包含行

APP_ENV=local

下面是 .env 文件的示例:https://github.com/laravel/laravel/blob/master/.env.example

这里是 Laravel 文档:https://laravel.com/docs/5.7/configuration


此外,在 composer.json 中,laravel/dusk 应该列在 require-dev 而不是 require 下。

检查源文件夹中是否包含名为.env的文件,并设置数据库用户名和密码等设置。

我遇到了同样的问题,因为我已经设置了所有的东西但是忘记将 .env.example 更改为 .env