Solución al error 'getaddrinfo failed' en Laravel

Author
By Darío Rivera
Posted on 2020-09-23 in Laravel

El error getaddrinfo failed es un error propagado de PHP que indica básicamente que no se ha podido resolver el nombre de host al conectarse a algún servicio. Generalmente sale cuando el host de base de datos, colas o cache no ha podido resolverse. Lo primero que debes notar es en que servicio ha ocurrido este error, a continuación tienes en ejemplo de este error en la conexión con redis.

RedisException 

  php_network_getaddresses: getaddrinfo failed: Name or service not known

  at vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php:135
    131|         if (version_compare(phpversion('redis'), '5.3.0', '>=')) {
    132|             $parameters[] = Arr::get($config, 'context', []);
    133|         }
    134| 
  > 135|         $client->{($persistent ? 'pconnect' : 'connect')}(...$parameters);
    136|     }
    137| 
    138|     /**
    139|      * Create a new redis cluster instance.

      +26 vendor frames 
  27  artisan:37
      Illuminate\Foundation\Console\Kernel::handle()

En esencia, significa que php no ha podido iniciar una conexión con redis debido al nombre del host. Por lo cuál, deberás verificar los datos de tu conexión a redis.

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

Algo muy común que sucede con Laravel, es que si colocaste tu cache driver con redis, es decir, así

CACHE_DRIVER=redis

Y este proceso falló por el error visto anteriormente, aún así en el bootstraping de la aplicación ya se guardaron en cache los valores de los archivos de configuración, por lo que si intentas cambiar tu driver de cache o la misma configuración de redis esta será ignorada dejándonos en un bucle de error dado que no podemos limpiar dicha configuración con cache:clear.

La solución a este problema consiste en eliminar el cache del bootstrap de la aplicación, en síntesis borrar el siguente archivo.

rm boostrap/cache/config.php

Si te ha gustado este artículo puedes invitarme a tomar una taza de café


Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.