キャッシュに問題があります。私にはプロジェクトがあり、地元で働きました。サーバーにアップロードして.env
およびconfig/app.php
ファイルを編集するたびになります。効果がありません。
しかし、ローカルのサーバーの.env
構成を設定し、php artisan config:cache
を使用してキャッシュをクリアし、サーバーにアップロードした場合。できます。この方法を常に実行する必要がありますか?
したがって、変更が必要なときはいつでも.env
最初にローカルで変更し、キャッシュをクリアしてサーバーにアップロードする必要がありますか?または、サーバー上で直接コマンドを実行する方法はありますか。
そしてまた、別のプロジェクトで。サーバーで.env
およびconfig/app.php
ファイルを直接編集すると、すぐに有効になります。何が起こっている?
php artisan config:cache
、最初にキャッシュをクリアしてから、キャッシュを設定しています。メッセージを取得する必要があります:
構成キャッシュがクリアされました!
構成が正常にキャッシュされました!
サーバーにアップロードして.env
そこから、設定がキャッシュされているため、すぐには有効になりません。
ソリューション:キャッシュのみをクリアします:php artisan config:clear
およびphp artisan cache:clear
。これで、サーバーにアップロードして.env
ファイルは、構成がキャッシュされないため、すぐに有効になります。
.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
php artisan config:clear
php artisan cache:clear
php artisan config:cache
デプロイ中にconfig:cacheコマンドを使用している場合は、アプリケーションの他の場所からではなく、設定ファイル内からのみenv関数を呼び出していることを確認する必要があります。
アプリケーション内からenvを呼び出す場合は、適切な構成値を構成ファイルに追加し、代わりにその場所からenvを呼び出して、env呼び出しをconfig呼び出しに変換できるようにすることを強くお勧めします。
次のことを試してみましたが、うまくいきました
1.最初に職人サーバーをオフにし、env
ファイルに変更を加え、
2.これらのコマンドを実行する
php artisan cache:clear
php artisan config:clear
php artisan route:clear
3.実行
php artisan server
今では動作するはずです
スーパーバイザでキュードライバを使用している場合、.env
キュー関数にロードされた変数は、スーパーバイザーを再起動するまでキャッシュされます。
私の場合、いくつかのメール環境変数を変更し、ローカルキュードライバーがメールを同期的に処理していることに気付くまでローカルが正常に機能していたのに、リモートサーバーでキャッシュ/設定のクリアが機能しなかった理由を混乱させましたリモートサーバーはメール送信にキューを使用していました。