Cómo usar Docker en proyectos PHP

Cómo usar Docker en proyectos PHP

Cómo hacer para..., Herramientas
Hace tiempo que vengo usando (¡y abogando por su uso!) máquinas virtuales para mis proyectos PHP. Hasta ahora me venía manejando con Vagrant y debo decir que me ha dado unas cuantas satisfacciones. Sin embargo, hay algunos problemas derivados de su uso: Las VM se pueden volver muy pesadasOcupan mucho espacio en el discoSon lentas de levantarNo es sencillo tener muchas corriendo a la par (Consumen muchos recursos de hardware)No es fácil asegurarme de que en Producción y en Desarrollo tengo exactamente el mismo software instalado. Investigando un poco y, hay que decirlo también, por consejo de algunos colegas me metí con docker. Qué es Docker Docker es una herramienta de virtualización basada en un concepto algo diferente al que usa Vagrant: los contenedores. No me voy a meter acá…
Leer más
Cómo usar URLs amigables con el Servidor Web Incorporado a PHP

Cómo usar URLs amigables con el Servidor Web Incorporado a PHP

Cómo hacer para...
Es muy común, desde la versión 5.4 de PHP, usar el servidor que viene incorporado mientras estamos en un ambiente de desarrollo (¿Para qué negarlo? ¡Es sumamente cómodo!). Un problema que sucede a menudo al utilizarlo es cómo usar URLs amigables. Por ejemplo, a un sitio web productivo no vas a querer que se acceda mediante algo como: https://misitio.com/index.php?fecha=2019-06-25&slug_categoria=top10 Más bien vas a preferir algo como: https://misitio.com/articulos/2019-06-25/top10 ¿O no? El problema es que, en el caso de PHP, las variables que se reciben a través de la URL son accesibles a los scripts a través de la variable $_GET. Claro que, para que esto suceda, estas URLs deben estar escritas respetando el formato canónico: La separación entre URLs y parámetros se marca con el caracter "?"La separación entre nombre del…
Leer más
Cómo instalar librerías de composer en un hosting compartido

Cómo instalar librerías de composer en un hosting compartido

Cómo hacer para...
Una pregunta que me han hecho en repetidas oportunidades es cómo usar composer en un ambiente de hosting compartido. Personalmente, siempre prefiero usar mis propios servidores tipo VPS, precisamente para evitar este tipo de problemas, pero... si no queda otra, veamos qué se puede hacer. Cómo instalar dependencias si tenemos acceso ssh Existen algunos hostings compartidos que permiten algún tipo de acceso vía ssh (o similar). Si este es el caso, puede que hasta tengamos composer ya instalado... claro que la versión que podremos encontrar puede ser algo añeja y, como el servidor lo administra otro, tendremos que poner un ticket de soporte y rogar para que se actualice. Si tenemos suerte, podremos ejecutar composer y actualizar nuestras dependencias directamente en el servidor como si estuviéramos en un ambiente controlado…
Leer más
Cómo llevar los cambios de una base de datos de desarrollo a producción

Cómo llevar los cambios de una base de datos de desarrollo a producción

Cómo hacer para...
Cuando tenemos una aplicación en producción (Es decir, siendo utilizada por usuarios reales) es muy común que nos encontremos con necesidades que no han sido cubiertas por el desarrollo original. Esto puede deberse a diversos factores como la falta de análisis, una pobre comprensión de la problemática a encarar o simplemente al hecho de que la realidad va cambiando conforme pasa el tiempo. Independientemente de cuál de éstas haya sido, cuando se detecta una necesidad que el software no cubre se requiere realizarle modificaciones para adaptarlo al nuevo escenario. Algunas veces los cambios en el código vienen de la mano de cambios en la estructura de la base de datos utilizada para dar soporte a la aplicación. Y ahí comienzan los problemas :) En un ambiente de trabajo profesional es…
Leer más
¿Es posible hostear una aplicación PHP en Windows?

¿Es posible hostear una aplicación PHP en Windows?

Misceláneos
Un amigo me contactó por un problema que estaba enfrentando su equipo técnico: están desarrollando una aplicación PHP que necesitan hostear sí o sí en un servidor Windows. Actualmente tienen un IIS montado en su servidor y la duda era, primero si era posible servir PHP desde IIS o si era necesario usar un servidor Apache y, en tal caso, si era necesario compilarlo desde 0 (Algo que estaba fuera del alcance de dicho equipo). Mi primera impresión ante esta situación fue de sorpresa. Ciertamente, Windows no sería mi elección en cuanto a servidor (En general prefiero mantenerme alejado de Windows, pero especialmente para el caso de servidores soy bastante estricto). Yo optaría por alguna distribución de linux (Probablemente basada en Debian como para hacer las cosas sencillas, pero en DistroWatch siempre…
Leer más
Qué se necesita para poner online una aplicación PHP

Qué se necesita para poner online una aplicación PHP

Misceláneos
Si bien en sus inicios PHP se utilizaba exclusivamente para la creación de aplicaciones web, hoy en día abarca un abanico mucho más amplio. En este artículo me centraré en la infraestructura mínima necesaria para poner en línea una aplicación web desarrollada con PHP. Qué requisitos debe cumplir un servidor para albergar una aplicación PHP Lo primero que debemos comprender es que, para que una aplicación web esté en línea, independientemente del lenguaje en que esté desarrollada, se requiere: Que el código esté disponible en alguna computadora conectada a Internet (El Servidor)Que dicha computadora cuente con algún software capaz de recibir peticiones a través de Internet (El WebServer) instalado y funcionandoQue la dirección IP de esa computadora sea conocida en forma pública (o fácilmente averiguable) En el caso de PHP…
Leer más
Cómo hacer backups con MySQL

Cómo hacer backups con MySQL

Cómo hacer para...
Cuando una aplicación entra en producción (si no antes), resulta clara la necesidad de realizar backups. Por más que uno esté usando hostings virtualmente irrompibles (Como Digital Ocean), nunca se puede ser demasiado precavido. Por otro lado, seguro que el código de la aplicación que hiciste es una obra de arte digna del Louvre, pero, lo realmente importante son los datos que el cliente genera con ella (¡al menos para él!). Hay varias formas de resolver este problema, voy a nombrar algunas en orden de simplicidad decrecreciente (Es decir, empiezo por la más fácil :) ): Cómo hacer backups usando MySQL WorkBench Desde la pantalla principal (Una vez conectado a un servidor) Arriba a la izquierda encontramos el menú "Management": De ahí tenemos la opción "Data Export": Eso nos lleva…
Leer más
Qué es un CDN y por qué deberías usarlo

Qué es un CDN y por qué deberías usarlo

Herramientas
CDN significa Content Delivery Network o Red de Distribución de Contenidos. Se trata de conjuntos (por lo general bastante grandes) de servidores sincronizados entre sí y preparados para servir contenido estático desde diversos puntos del planeta. Su objetivo principal es el de disminuir el tiempo de carga de una página web (Algo que siempre viene bien). Este objetivo se logra combinando varios factores. Entre ellos: Aprovechando el paralelismo de los pedidos HTTP: Al tener el contenido distribuido en diversos servidores (en lugar de tener el código php y los archivos estáticos en el mismo) el cliente puede lanzar varias peticiones en paralelo por un lado y, por el otro, el pobre servidor al que llegan todos los visitantes de tu sitio puede delegar parte de la carga, lo cual a…
Leer más
Cómo autenticar usuarios vía HTTP usando PHP

Cómo autenticar usuarios vía HTTP usando PHP

Cómo hacer para...
La autenticación a nivel de HTTP se activa mediante la configuración del webserver. Es el nivel más bajo de autenticación que puede tenerse en un entorno web, ya que lo que va a verificar es que el cliente que solicita un determinado recurso (URI) tenga acceso a él, antes de hacer ningún otro tipo de verificación. De lo que estoy hablando es de lo que sucede cuando querés ingresar a un sitio, por ejemplo http://localhost y, en lugar de ver el contenido del sitio, se abre una ventana como esta:  Por lo general, no es mucho lo que puede validarse (No hay posibilidad de ofrecer diferentes niveles de acceso ni nada parecido), con lo cual, no es algo que suela utilizarse en entornos de acceso público. La forma de configurar este…
Leer más
¿Es conveniente montar tu propio servidor web?

¿Es conveniente montar tu propio servidor web?

Reflexiones
"Tengo una aplicación muy sencilla alojada en hostinger. Iba bien hasta ayer que se cayó la web y resulta que tengo un ataque DDos y claro no puedo monitorear ni nada por que no tengo acceso ssh al servidor" "Tengo un sitio de uso personal en un alojamiento gratuito y hasta hace poco todo funcionaba correctamente, pero de un tiempo para acá no se guardan las cookies de sesión en el navegador" ¿Te suena familiar? Es tentador usar un hosting compartido y que otro se encargue de la infraestructura, ¿no? Más aún si es gratuito... pero ¿qué pasa cuando se necesita algo más? Claro que montar tu propio servidor tampoco es un paseito. Lo primero que tenés que pensar en esto es si vas a ser capaz de darle soporte…
Leer más