«Mi PHP funciona en mi local pero en el hosting no»

Si tuviera un centavo por cada vez que escuché esta frase…

«Tengo este código que en localhost funciona perfectamente. Resulta que cuando los subo al servidor (hosting) no funciona y no da ningún tipo de error»

«en localhost mi página funciona de maravilla pero al subirla deja de funcionar»

«El formulario funciona perfecto dentro de XAMPP, no tengo ningún tipo de problema, hasta que decido subir los archivos al hosting…»

Y así podría seguir toda la tarde…

Imaginate la situación:

Llegó el día de lanzar al público la web en la que llevás un tiempo trabajando.

La revisaste de arriba abajo, probaste los casos más estrambóticos que se te ocurrieron: todo de 10.

Llamaste a tu cliente y agendaste la demo.

Abriste tu cliente de FTP y ahí fue todo el código.

Como para quedarte tranquilo abriste el sitio a través de la URL del hosting y… nada.

Una página completamente en blanco.

F5.

F5.

F5 F5 F5 F5 F5.

Cri cri.

Y atrás el reloj casi parece reirse mostrándote cómo el poco tiempo que te queda antes de quedar en ridículo se va agotando.

¿Y ahora qué pasó? ¿Por dónde encarar?

Tranqui, no estás solo.

Yo mismo me he quemado con leche más de una vez y después de sudar la gota gorda siempre me dije lo mismo: «¿Era necesario improvisar? Si todo lo que pasó era perfectamente previsible… ¿por qué no te tomaste media hora más para pensarlo un poquito?»

La realidad es que las causas que pueden llevar a esta situación son múltiples, pero todas se enmarcan dentro de una premisa básica:

No todos los entornos de ejecución son iguales.

Por tomar sólo algunos ejemplos de factores que pueden malograr un despliegue y convertir tus planes de fin de semana en una utopía:

  • ¿La versión de php es la misma en tu XAMPP y en tu hosting?
  • ¿Los permisos sobre los directorios están bien configurados?
  • ¿Los datos de acceso a la base de datos son correctos?
  • ¿Las extensiones que necesitás instaladas y habilitadas están en el hosting?
  • ¿Tu código depende de alguna configuración especial de php.ini?
  • ¿Los archivos se incluyen usando rutas relativas o absolutas?

Y una larga lista de etcéteras.

Pero entonces, ¿es así? ¿Se trata de rezarle a todos los dioses para que nada se rompa cada vez que hay que subir una web?

No necesariamente.

Hay varias cosas que podés hacer para mejorar tus chances de éxito.

Lo más importante, independientemente de dónde vayas a hostear tu aplicación, es contar con un entorno de desarrollo lo más parecido (Por no decir igual) a aquel donde tu código va a correr el día que lo entregues. Clic para tuitear

Una forma de lograrlo es armar tu entorno local a imagen y semejanza del hosting que hayas contratado.

Otra es hacerlo exactamente al revés: contratar un espacio de hosting que tenga las mismas características de tu entorno de desarrollo.

Una herramienta que a mi me ha ahorrado muchos de estos dolores de cabeza y que siempre recomiendo son las máquinas virtuales.

Y otra de las claves es desarrollar el código siempre pensando en que en algún momento vas a tener que llevarlo a otro lado.

En concreto, es muy conveniente separar la configuración respecto del código.

Por ejemplo, cuando tenés que conectarte a la base de datos, en lugar de escribir:

$conn = new mysqli('localhost', 'root', '1234', 'midb');

Escribí:

$conn = new mysqli($dbhost, $dbuser, $dbpassword, $dbname);

Y todas esas variables definilas en un archivo aparte que puedas incluir, de esa forma, cuando vayas al hosting no vas a tener que empezar a hurgar por acá y por allá, sólo te va a tocar cambiar ese archivo y listo, todo sigue funcionando como si tal cosa. Para esto, nada mejor que usar archivos .env.

Otra herramienta que ayuda mucho a lograr este objetivo es composer (Un manejador de dependencias).

Por supuesto que, aún con el mejor plan posible las cosas pueden no salir 100% bien de entrada y ahí va a ser importante tener a mano algunas herramientas que te ayuden a encontrar rápidamente el problema… tema para otro post :).

Sugerencia: analizá el código que estás escribiendo y armate un documento listando exactamente todo lo que vas a necesitar en el hosting y asegurate de tenerlo disponible antes de hacer el despliegue.

mchojrin

¿Te quedó alguna duda? Publica aca tu pregunta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: