我将我的项目从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.
答案 0 :(得分:16)
在Laravel 5.5中,会自动发现并加载包,因此您可能需要告诉它不要加载黄昏。
一种方法是将其添加到composer.json
"extra": {
"laravel": {
"dont-discover": [
"laravel/dusk"
]
}
},
此外,您可以将其添加到您的dev依赖项中,当您在生产中部署时,请使用:
composer install --no-dev
泰勒写了一篇关于它的文章here。
答案 1 :(得分:2)
看,它不起作用,因为它被配置为在local
和testing
环境中工作。
我想您需要添加“生产”(如果您的作品在.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
下。