web-dev-qa-db-fra.com

Toujours effacer le cache dans .env?

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?

7
Steve

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. 

13
Sanzeeb Aryal

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
10
MoPo
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

1
Maulik Shah

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

0
Jasbin Karki

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.

0
tanderson