プロジェクトを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.
Laravel 5.5では、パッケージは自動的に検出およびロードされるため、おそらく夕暮れをロードしないように指示する必要があります。
1つの方法は、これをcomposer.jsonに追加することです
"extra": {
"laravel": {
"dont-discover": [
"laravel/dusk"
]
}
},
また、devの依存関係に追加することもできます。運用環境で展開する場合は、次を使用します。
composer install --no-dev
テイラーはそれについての記事を書いた ここ 。
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
幸運を!
.env
という名前のファイルがソースフォルダーに含まれているかどうかを確認し、データベースのユーザー名とパスワードおよびその他の設定をセットアップします。
すべてを設定したが、.env.example
を.env
に変更するのを忘れたため、同じ問題が発生しました。
開発環境でこの問題が発生していて、タイトルのために誤ってここに落ちた場合は、.env
ファイルを確認する必要があります開発用にセットアップされています。行を含める必要があります
APP_ENV=local
.env
ファイルがどのように見えるかの例を次に示します。 https://github.com/laravel/laravel/blob/master/.env.example
Laravel documentation: https://laravel.com/docs/5.7/configuration
また、composer.json
では、laravel/dusk
はrequire
ではなくrequire-dev
の下にリストする必要があります。