J'ai un problème de cache. J'ai un projet et travaillé sur local. Maintenant, chaque fois que je télécharge sur le serveur et édite le fichier .env
et config/app.php
. Cela ne prend pas l'effet.
Mais, si je configure les configurations .env
du serveur en local, efface le cache avec php artisan config:cache
et le télécharge sur le serveur. Ça marche. Devrais-je toujours faire cette méthode?
Donc, chaque fois que j'ai besoin de changer .env
, je devrais d'abord le changer en local et vider le cache et le télécharger sur le serveur? Ou existe-t-il une méthode permettant de commander directement sur le serveur?.
Et encore, dans un autre projet. La modification du fichier .env
et config/app.php
directement dans le serveur prend effet immédiatement. Qu'est-ce qui se passe?
Avec php artisan config:cache
, vous effacez d'abord le cache, puis vous le définissez. Vous devriez recevoir le message:
Cache de configuration effacé!
Configuration mise en cache avec succès!
Maintenant, si vous téléchargez sur le serveur et éditez .env
à partir de là, cela n'aura pas d'effet immédiat car la configuration est mise en cache.
Solution : Effacez uniquement le cache: php artisan config:clear
et php artisan cache:clear
. Maintenant, vous pouvez télécharger sur le serveur et éditer le fichier .env
à partir du serveur avec effet immédiat car la configuration n'est pas mise en cache.
Vérifiez APP_ENV dans votre fichier .env. Si c'est en production, alors oui, Laravel le cache. Vous devriez exécuter ces commandes avant de changer de configuration:
php artisan cache:clear
php artisan config:clear
php artisan route:clear
Et ensuite, après les changements, lancez ceux-ci:
php artisan config:cache
php artisan route:cache
php artisan optimize
php artisan config:clear
php artisan cache:clear
php artisan config:cache
Si vous utilisez la commande config: cache lors du déploiement, vous devez vous assurer que vous appelez la fonction env uniquement à partir de vos fichiers de configuration, et non de n'importe où ailleurs dans votre application.
Si vous appelez env depuis votre application, il est vivement recommandé d'ajouter les valeurs de configuration appropriées à vos fichiers de configuration et d'appeler env depuis cet emplacement, ce qui vous permettra de convertir vos appels env en appels de configuration.
Lire le fil entier sur https://github.com/laravel/framework/issues/21727
j'ai essayé les choses suivantes et cela a fonctionné pour moi
1.first turn off artisan server and make changes to env file and
2.run these commands
php artisan cache:clear
php artisan config:clear
php artisan route:clear
3.run php artisan server
MAINTENANT CELA DEVRAIT TRAVAILLER
Si vous utilisez un pilote de file d'attente avec un superviseur, vos variables .env
chargées dans des fonctions de file d'attente seront mises en cache jusqu'à ce que vous redémarriez superviseur.
Dans mon cas, j’avais modifié certaines variables d’envois mail et je ne comprenais pas pourquoi vider le cache/la configuration ne fonctionnait pas sur le serveur distant alors que local fonctionnait correctement jusqu’à ce que j’aperçois que mon pilote de file d’attente local traitait le courrier de manière synchrone utilisait la file d'attente pour l'envoi de courrier.