Solución al error 'getaddrinfo failed' en Laravel

Author
Por Darío Rivera
Publicado el en 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

Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

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