¿Cómo buscar el origen de un error?
Tags: spanish, nextcloud, linux
Published: 2019-10-16 02:35:12

¿No les ha pasado que instalan una aplicación y todo funciona bien hasta que un día de la nada BOOM!, no arranca?

Bueno hoy les voy a platicar algo curioso que me paso con una instalación que tengo de la versión *community* de [Nextcloud](https://nextcloud.com/), la cual instale hace ya un buen tiempo; un año aproximadamente. El punto de todo esto es que un día sin más, dejó de funcionar, así de la nada.

Entonces fue que comencé con lo que les voy a contar, que fueron más de dos semanas sin mi server funcionando, y ya sé, quizás cuando les cuente, pensaran que era muy obvio el error, pero precisamente de eso se trata todo este post, de como en ocasiones el error es tan evidente y tan obvio pero por alguna razón no lo vemos, no podemos identificarlo; ya sea porque  nunca nos habíamos topado con algo así, o porque simplemente en ese momento nuestra cabeza no podía razonar adecuadamente jaja.

Entonces, como les contaba, me di cuenta porque desde mi app de nextcloud en mi teléfono, me indicaba que no se podía conectar a mi server, así que lo primero que pensé fue que mi servidor (Que es mi maquina local, en mi casa) se había apagado, y de nuevo me dirán que quien usa una maquina como servidor sabiendo que todo eso puede pasar, o apagarse, o que algo se descompongo, lo sé pero, solo la uso como almacenamiento personal y me gusta poder acceder/guardar desde cualquier lugar tal como si fuese mi Drive en mi cuenta de google; pero de nuevo no es el punto... lo importante es que algo falló, y una vez llegué del trabajo me puse a revisar, y mi equipo si estaba encendido, así que algo diferente estaba pasando.

Entonces me conecte a mi server (por cierto es un ubuntu server 18.04 me parece) y comencé a revisar, y aparentemente yo no había movido nada... 
 -que raro! ayer funcionaba- así que comencé a ver si por error se había dañado algún archivo, ya sea de configuración o algo similar y nada. Esa noche me desvelé buscando que podría ser, hasta el punto de frustrarme y decidir que mejor me iría a dormir y ya!


Al día siguiente lo mismo, seguí buscando y no lograba encontrar nada, lo raro aquí era que mi la página principal de Nexcloud(la instalación local) me estaba regresando como respuesta un archivo index.php que yo jamás había movido, ni en las configuraciones. Busqué por foros, varios de ellos y nada. reinstale mi apache, revisé la documentación y sin existo. Estuve así varios días, hasta que me desesperé y decidí dejarlo por la paz por un tiempo.

Al cabo de unos días,  despues de relajarme durante mi fin de semana y no estar pensando en eso, una noche sin más me da por volver a revisarlo, y en este punto es donde quiero expresar lo que el título menciona (Perdon por tanta introducción). Aquí, en ese punto fue donde me di cuenta de que muchas veces,simplemente "buscamos" la solución a problemas que se nos presentan pero que ni siquiera entendemos qué es lo que estamos buscando; yo debo confesar que muchas veces mientras intento solucionar algún problema con mi instalación de sistema operativo o una aplicación en especifico, no comprendo del todo ni el problema ni la solución y simplemente tiendo a copiar y pegar una linea de código que por arte de magia resuelve el problema. Y ¡Ojo! no digo que esto sea malo, al final logramos nuestro objetivo que es solucionar nuestro inconveniente, lo que digo es que estaría bien, entender qué es lo que está pasando, y saber como buscar una solución a un problema del cuál mínimo entendemos cuál es el error en sí.

En mi caso, una recomendación que me sirvió mucho a mi es aprender a leer los archivos *logs*, ya que en ellos normalmente es donde vamos a encontrar la causa exacta de lo que está sucediendo. Para empezar, me di a la tarea de buscar donde se ubican los logs, tanto de la aplicación de nexcloud tanto de mi servidor apache que en este caso es quien está sirviendo la app desde mi ubuntu server. Después de revisar un poco abrí los archivos de log y encontré un error parecido a este: 


`An unhandled exception has been thrown:
Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occured in driver: could not find driver in /var/www/html/nextcloud/lib/private/DB/Connection.php:64`


Estuve moviendo y buscando todo el tiempo en el lugar equivocado, el problema no era mi instalación de nexcloud, sino la conexión a base de datos. Entonces una vez sabiendo esto, busqué información sobre este error y me encontré con se se presenta cuando no se encuentra un módulo de PHP que sirve como driver para conexiones con MySQL.

Al final, todo fue tan fácil como instalar el módulo faltante *php7.3_mysql*  me parece que se llama y con eso de nuevo todo volvió a la normalidad. Ahora bien ¿cuál fue el motivo?, no estoy seguro, yo creo que fue después de una actualización del sistema operativo, y que algo se terminó rompiendo, pero lo que me dejó de aprendizaje esto, es que, tengo que aprender a buscar mejor, a tomar las cosas con calma y empezar por "el principio" con este tipo de cosas, y no solo copias y pegar "código mágicos" que todo lo arreglan. 


Espero no haberte aburrido con este texto tan largo, solo quería platicarle sobre esto que me sucedió y quizás ustedes también tengan alguna experiencia similar.

Sin más por el momento, saludos!