Le rechargement .des variables d'environnement sans avoir à redémarrer le serveur (Laravel 5, hébergement mutualisé)
Mon Laravel 5 a exécuter sur OK jusqu'à ce que la base de données a été configuré, puis a trouvé ce message d'erreur:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
Faire quelques recherches, il semble que j'ai configuré les accès MySQL trop tard, donc je doit redémarrer le serveur afin d'obtenir les bonnes variables d'environnement. Eh bien, je suis en utilisant Dreamhost partagé du serveur et je ne peux pas le faire.
Comment dois-je régler ce problème?
Grâce
Vous n'avez pas à redémarrer le serveur web dans le but de faire de Laravel relire .fichier env. Laravel t-il lors de chaque course.
alors, si ce n'est pas le problème, si les informations sont correctes, quel est le problème? Je suis en cours d'exécution
alors, si ce n'est pas le problème, si les informations sont correctes, quel est le problème? Je suis en cours d'exécution
php artisan migrate
donc que j'applique la migrationOriginalL'auteur godsaway | 2015-09-06
Vous devez vous connecter pour publier un commentaire.
Si vous avez exécuté
php artisan config:cache
sur votre serveur, puis votre Laravel application pourrait cache obsolète paramètres de configuration que vous avez mis dans le.env
fichier.Exécuter
php artisan config:clear
pour résoudre ce problème.php artisan config:cache
en fait efface le cache et reconstruit, je vous le recommande qu'au lieu de seulementconfig:clear
si vous souhaitez continuer à utiliser le cache. MAIS TIL que si vous utilisez leenv()
fonction à l'extérieur de la cache de fichiers, vous aurezNULL
des valeurs lors de la config est mis en cache. Donc, assurez-vous d'utiliser UNIQUEMENTenv()
à l'intérieur des fichiers dans votre répertoire de cacheOriginalL'auteur morph
Il est possible que votre configuration de variables sont mises en cache. Vérifiez votre
config/app.php
ainsi que votre.env
fichier puis essayezsur la ligne de commande.
.env
variables remplacerconfig/app.php
variables pourquoi devrais-je vérifier ce fichier?Ils n'en ont pas. Le
config/app.php
l'utilisation du fichier avec l'env()
fonction. Tous les fichiers de config à faire, vraiment. Donc, je voudrais vérifier leconfig/database.php
pour voir si les appels àenv()
utiliser les noms corrects.Voyons, si j'ai l'app de travailler localement avec apache que je ne dois modifier légèrement certaines valeurs dans le
.env
fichier dans le serveur, non? Et si rien n'est changé à l'intérieur de laconfig/
fichiers tout devrait fonctionner je pense. Il y a quelque chose qui me manque, putainOriginalL'auteur AurelienT
Dans le cas où quelqu'un tombe sur cette question qui ne peut pas recharger leur serveur (longue course de commande de la console comme une file d'attente runner) ou besoin de recharger leur .fichier env mi-demande, j'ai trouvé une façon de bien recharger .des variables d'environnement dans laravel 5.
OriginalL'auteur Question Mark
Un court de solution:
Dans mon cas, j'ai besoin de ré-établir la connexion à la base après la modification .env par programme, mais il ne fonctionne pas , Si vous entrez dans cette difficulté à essayer cette
après rechargement .env , c'est parce que Laravel Application pourrait avoir accédé à la connexion par défaut avant et la
\Illuminate\Database\DatabaseManager
besoins de re-lire la config paramètres.use Dotenv\Dotenv; use Illuminate\Foundation\Bootstrap\LoadConfiguration;
Quand il s'agit de la base de données
DB::reconnect();
a fait le tour.OriginalL'auteur MatteoOreficeIT
Dans
config/database.php
j'ai changé la valeur par défaut DB connexion de mysql sqlite. J'ai supprimé le.env
fichier (en fait il renommé) et créé le fichier sqlite avectouch storage/database.sqlite
. La migration a travaillé avec sqlite.Puis j'ai rallumé le
config/database.php
par défaut DB connexion à mysql et récupéré le.env
fichier. La migration a travaillé avec mysql.Il n'est pas logique, je suppose. Peut-être était quelque chose de serverside.
OriginalL'auteur godsaway