web-dev-qa-db-ja.com

常に.envのキャッシュをクリアする必要がありますか?

キャッシュに問題があります。私にはプロジェクトがあり、地元で働きました。サーバーにアップロードして.envおよびconfig/app.phpファイルを編集するたびになります。効果がありません。

しかし、ローカルのサーバーの.env構成を設定し、php artisan config:cacheを使用してキャッシュをクリアし、サーバーにアップロードした場合。できます。この方法を常に実行する必要がありますか?

したがって、変更が必要なときはいつでも.env最初にローカルで変更し、キャッシュをクリアしてサーバーにアップロードする必要がありますか?または、サーバー上で直接コマンドを実行する方法はありますか。

そしてまた、別のプロジェクトで。サーバーで.envおよびconfig/app.phpファイルを直接編集すると、すぐに有効になります。何が起こっている?

10
Steve

php artisan config:cache、最初にキャッシュをクリアしてから、キャッシュを設定しています。メッセージを取得する必要があります:

構成キャッシュがクリアされました!

構成が正常にキャッシュされました!

サーバーにアップロードして.envそこから、設定がキャッシュされているため、すぐには有効になりません。

ソリューション:キャッシュのみをクリアします:php artisan config:clearおよびphp artisan cache:clear。これで、サーバーにアップロードして.envファイルは、構成がキャッシュされないため、すぐに有効になります。

19
Sanzeeb Aryal

.envファイルのAPP_ENVを確認します。本番環境の場合は、はい、laravel=キャッシングします。設定を変更する前にこれらのコマンドを実行する必要があります。

php artisan cache:clear
php artisan config:clear
php artisan route:clear

そして、変更後にこれらを実行します:

php artisan config:cache
php artisan route:cache
php artisan optimize
17
MoPo
php artisan config:clear

php artisan cache:clear 

php artisan config:cache

デプロイ中にconfig:cacheコマンドを使用している場合は、アプリケーションの他の場所からではなく、設定ファイル内からのみenv関数を呼び出していることを確認する必要があります。

アプリケーション内からenvを呼び出す場合は、適切な構成値を構成ファイルに追加し、代わりにその場所からenvを呼び出して、env呼び出しをconfig呼び出しに変換できるようにすることを強くお勧めします。

スレッド全体を読む https://github.com/laravel/framework/issues/21727

2
Maulik Shah

次のことを試してみましたが、うまくいきました

1.最初に職人サーバーをオフにし、envファイルに変更を加え、

2.これらのコマンドを実行する

php artisan cache:clear
php artisan config:clear
php artisan route:clear

3.実行

php artisan server

今では動作するはずです

1
Jasbin Karki

スーパーバイザでキュードライバを使用している場合、.envキュー関数にロードされた変数は、スーパーバイザーを再起動するまでキャッシュされます。
私の場合、いくつかのメール環境変数を変更し、ローカルキュードライバーがメールを同期的に処理していることに気付くまでローカルが正常に機能していたのに、リモートサーバーでキャッシュ/設定のクリアが機能しなかった理由を混乱させましたリモートサーバーはメール送信にキューを使用していました。

1
tanderson