问题
I upgrated my project from laravel 5.4 to laravel 5.5 ,
I dont have any problem in local env but in server i get this exception ,
I searched a lot and i know this issue may be duplicated but no solutions solved my problem!
How can i not registering dusk when environment is production?
i wrote this code in AppServiceProvider.php :
public function register()
{
// Dusk, if env is appropriate
if ($this->app->environment('local', 'testing')) {
$this->app->register(DuskServiceProvider::class);
}
}
but it seems not working. can anyone help?
EDITED : my composer.json file:
"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"
},
The Exception is :
Exception
It is unsafe to run Dusk in production.
回答1:
In Laravel 5.5, packages are automatically discovered and loaded so you will probably need to tell it not to load dusk.
One way is to add this to your composer.json
"extra": {
"laravel": {
"dont-discover": [
"laravel/dusk"
]
}
},
Also, you can add it to your dev dependencies and when you deploy in production, use:
composer install --no-dev
Taylor wrote an article about it here.
回答2:
Look, it does not work because it is configured to work on local
and testing
environment.
I guess that you need to add 'production' (if your production is called 'production in your .env
file environment:
public function register()
{
// Dusk, if env is appropriate
if ($this->app->environment('local', 'testing', 'production')) {
$this->app->register(DuskServiceProvider::class);
}
}
When installing to production server I just needed to use the --no-dev
flag
composer install --no-dev
Good luck!
回答3:
Check whether file which named .env
contained in the source folder and setup Database user name and password and other settings.
I had the same problem because I have set all the things but forgot to change the .env.example
to .env
回答4:
If you're experiencing this problem while in a developing environment and accidentally landed here due to the title, you should check that your .env
file is set up for development. It should contain the line
APP_ENV=local
Here is an example of how the .env
file could look: https://github.com/laravel/laravel/blob/master/.env.example
And here is the Laravel documentation: https://laravel.com/docs/5.7/configuration
Also, in composer.json
, laravel/dusk
should be listed under require-dev
and not require
.
来源:https://stackoverflow.com/questions/49622200/how-to-solve-exception-it-is-unsafe-to-run-dusk-in-production-in-laravel-5-5