如何解决例外在laravel 5.5中运行Dusk是不安全的?

时间:2018-04-03 04:20:27

标签: php laravel laravel-5.5 laravel-dusk

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

我在本地环境中没有任何问题,但在服务器中我得到了这个例外,

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

当环境生产时,我怎么能不注册黄昏?

我在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.

4 个答案:

答案 0 :(得分:16)

在Laravel 5.5中,会自动发现并加载包,因此您可能需要告诉它不要加载黄昏。

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

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

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

composer install --no-dev

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

答案 1 :(得分:2)

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

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
祝你好运!

答案 2 :(得分:1)

检查源文件夹中是否包含名为import smtplib from email.mime.text import MIMEText def test(): frm = "a@b.com" to = "c@d.com" # Original line: msg = MIMEText("Hello, Dear") msg = MIMEText("Hello, World") # Changed line try: s = smtplib.SMTP("localhost") s.sendmail(frm, to, msg.as_string()) except Exception as e: return False return True test() 的文件,并设置数据库用户名和密码以及其他设置。

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

答案 3 :(得分:0)

如果您在开发环境中遇到此问题,并且由于标题的原因而意外落在此处,则应检查.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下。