2015-09-06 12 views
9

mio laravel 5 ha eseguito OK fino a quando il database è stato configurato, quindi trovato questo errore:Ricaricamento .env variabili del server senza riavviare (laravel 5, hosting condiviso)

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known 

Facendo qualche ricerca sembra che ho configurato MySQL accedere troppo tardi, quindi dovrei riavviare il server per ottenere le variabili d'ambiente corrette. Bene, sto usando il server condiviso di Dreamhost e non posso farlo.

Come devo risolvere questo problema?

Grazie

+0

Non è necessario riavviare il server Web per fare in modo che Laravel rileggi il proprio file .env. Laravel lo fa durante ogni corsa. –

+0

@ max.lanin, quindi se questo non è il problema, se le credenziali sono corrette, qual è il problema? Sto eseguendo "php artisan migrate" in modo tale da applicare la migrazione – godsaway

risposta

0

In config/database.php Ho cambiato la connessione DB predefinita da mysql a sqlite. Ho eliminato il file .env (in realtà lo ha rinominato) e creato il file sqlite con touch storage/database.sqlite. La migrazione ha funzionato con sqlite.

Quindi ho ripristinato la connessione DB predefinita di config/database.php su mysql e ho recuperato il file .env. La migrazione ha funzionato con mysql.

Non ha senso, immagino. Forse era qualcosa di server.

8

E 'possibile che le variabili di configurazione sono memorizzati nella cache. Verifica il tuo config/app.php così come il file .env quindi provare

php artisan cache:clear 

sulla riga di comando.

+0

Grazie, ma l'ho già provato. Ad ogni modo, se le variabili '.env' sostituiscono le variabili' config/app.php' perché dovrei controllare questo file? – godsaway

+0

Non lo fanno. Il file 'config/app.php' li usa con la funzione' env() '. Tutti i file di configurazione funzionano davvero. Quindi controllerei 'config/database.php' per vedere se le chiamate a' env() 'usano i nomi corretti. – AurelienT

+0

Vediamo, se ho l'app che funziona localmente con apache, dovrei solo modificare alcuni valori nel file '.env' nel server, giusto? E se nulla viene modificato all'interno dei file 'config /' tutto dovrebbe funzionare credo. C'è qualcosa che mi manca dannatamente – godsaway

19

Se sul server è stato eseguito il numero , l'app Laravel può memorizzare nella cache impostazioni di configurazione obsolete che sono state inserite nel file .env.

Eseguire php artisan config:clear per risolvere quello.

+1

Questa è la migliore risposta. Ha funzionato per me! Grazie –

1

Nel caso in cui qualcuno si imbatta in questa domanda che non può ricaricare il proprio server web (comando della console di lunga durata come un queue runner) o ha bisogno di ricaricare il proprio file .env a metà richiesta, ho trovato un modo per ricaricare correttamente le variabili .env in laravel 5.

use Dotenv; 
use InvalidArgumentException; 

try { 
    Dotenv::makeMutable(); 
    Dotenv::load(app()->environmentPath(), app()->environmentFile()); 
    Dotenv::makeImmutable(); 
} catch (InvalidArgumentException $e) { 
    // 
} 
+0

my laravel non sembra in grado di importare Dotenv di default – user151496

Problemi correlati