My Laravel 5はデータベースが設定されるまでOKを実行し、このエラーを見つけました:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
いくつかの調査を行うと、MySQLアクセスの構成が遅すぎるように思われるため、正しい環境変数を取得するためにサーバーを再起動する必要があります。まあ、私はDreamhostの共有サーバーを使用していますが、それはできません。
この問題を修正するにはどうすればよいですか?
ありがとう
サーバーでphp artisan config:cache
を実行した場合、Laravel=アプリは.env
ファイルに入れた古い構成設定をキャッシュできます。
php artisan config:clear
を実行して修正します。
構成変数がキャッシュされている可能性があります。 config/app.php
と.env
ファイル
php artisan cache:clear
コマンドラインで。
私はこれが古いことを知っていますが、ローカル開発者にとっては、これが実稼働環境の.envファイルに戻ったものです:
rm bootstrap/cache/config.php
それから
php artisan config:cache
php artisan config:clear
php artisan cache:clear
簡単な解決策:
use Dotenv;
with(new Dotenv(app()->environmentPath(), app()->environmentFile()))->overload();
with(new LoadConfiguration())->bootstrap(app());
私の場合、プログラムで.envを変更した後、データベース接続を再確立する必要がありましたが、機能しませんでした。この問題が発生した場合は、これを試してください
app('db')->purge($connection->getName());
.envをリロードした後、それはLaravelアプリが以前にデフォルトの接続にアクセスし、\Illuminate\Database\DatabaseManager
は、構成パラメーターを再読み取りする必要があります。
Webサーバーをリロードできない(キューランナーのように長時間実行されるコンソールコマンド)か、リクエストの途中で.envファイルをリロードする必要があるこの質問に誰かがつまずく場合、laravel 5。
use Dotenv;
use InvalidArgumentException;
try {
Dotenv::makeMutable();
Dotenv::load(app()->environmentPath(), app()->environmentFile());
Dotenv::makeImmutable();
} catch (InvalidArgumentException $e) {
//
}
明確にするために、ケースに応じてクリアできるキャッシュには4つのタイプがあります。
php artisan cache:clear
アプリケーションキャッシュをクリアする場合は、コンソールで上記のステートメントを実行できます。このステートメントは、storage\framework\cache内のすべてのキャッシュをクリアします。
php artisan route:cache
これにより、ルートキャッシュがクリアされます。したがって、新しいルートを追加した場合、またはルートコントローラーまたはアクションを変更した場合は、これを使用して同じものをリロードできます。
php artisan config:cache
これにより、envファイルのキャッシュがクリアされ、リロードされます
php artisan view:clear
これにより、アプリケーションのコンパイル済みビューファイルがクリアされます。
ほとんどの共有ホスティングプロバイダーは、システムへのSSHアクセスを提供しません。そのような場合、ルートを作成し、次のように次の行を呼び出す必要があります。
Route::get('/clear-cache', function() {
Artisan::call('cache:clear');
return "All cache cleared";
});