Entradas

El mejor IDE para PHP

Imagen
Voy a comenzar diciendo que no existe un IDE perfecto, los hay mejores y peores, ninguno perfecto. El mejor IDE es el que mejor se adapte a tu proyecto, a veces es necesario utilizar uno para un proyecto antiguo que vamos a refactorizar y otro para un proyecto que comenzamos de cero.



En este blog voy a hablar de las características que creo que deberíamos de considerar a la hora de elegir nuestro entorno de desarrollo integrado (IDE), siempre enfocados a PHP. Consumo de recursos Raro es un entorno que consuma demasiada CPU pero en cuanto a RAM son bastante golosos, sobre todo los basados en Java, en la siguiente tabla veréis el consumo medio de RAM para alguno de estos IDEs.

IDERAMZend Studio 13.5.1905 MBNetBeans 8.2830 MBPHP Tools Visual Studio 2017320 MBVisual Studio Code 1.1130 MB Servicios Un buen entorno no solo debe presentar las herramientas necesarias para refactorizar, comprobar y rastrear errores, intellisense, sino permitir la integración con otros servicios como gestores d…

Una semana con Docker en Windows

Imagen
Docker para Windows ha mejorado muchísimo, recuerdo que no hace tanto intenté probarlo y no pude porque utilizaba Virtual Box y yo ya tenía Hyper-V corriendo en mi máquina lo cual me hizo imposible la prueba. Ahora, por suerte, utiliza nativamente Hyper-V y además soporta los contenedores de Windows. Pero empecemos de cero.


¿Qué es un contenedor? Hay mil definiciones online pero en resumidas cuentas un contenedor es una especie de máquina virtual con muchas limitaciones pero grandes ventajas. Los contenedores se basan en imágenes de software que parten de una imagen base y sobre la cual heredan sus características, al principio estas imágenes base solo estaban basadas en el núcleo de Linux pero con la llegada de los Server Core y Nano Core Microsoft también ha optado por crear sus imágenes base a partir de estas dos mini distribuciones de su sistema operativo. En resumen, son un entorno operativo aislado, con controlados recursos y portátil. ¿Qué es Docker? Docker no es más (a grande…

HTTP/2 para los usuarios de Google Chrome

Imagen
Si eres un webmaster y has notado que los usuarios de Google Chrome que accedían anteriormente a través de HTTP 2 ahora lo hacen por HTTP 1, estas en el sitio correcto.

Esto es debido a un cambio de política en la más reciente actualización de Chrome , lanzada a finales de mayo, que elimina el soporte a NPN, un método para actualizar una conexión a HTTP 2.



La única manera que tienen estos usuarios de Chrome de acceder a tu sitio web por HTTP 2 es cambiando a un navegador diferente. Pero tú, como administrador, puedes restaurar el soporte a HTTP 2 actualizando OpenSSL a versiones superiores o iguales a la 1.0.2. Para saber mas detalles sobre este comportamiento puedes visitar el siguiente enlace en inglés.
Este post está destinado principalmente a CentOS 7 con instalaciones de Nginx desde el repositorio oficial. 
La instalación oficial de Nginx no está compilada con OpenSSL, con lo cual utiliza la instalación que tengas en tu CentOS, lo malo de esto es que a fecha de hoy no existen pa…

Drivers ODBC 13 y PHP de Microsoft para SQL Server en CentOS 7

Imagen
Microsoft es más Open Source que nunca, ¡y que lo digan! Han cambiado mucho los tiempos en que sólo se podían utilizar las herramientas de Microsoft en Windows, y han cambiado para bien. Una de las limitaciones existentes era utilizar su driver de conexión al SQL Server para PHP en entornos linux, felizmente esa limitación está llegando a su fin gracias a las versiones para linux del Microsoft ODBC Driver 13 (preview) y Microsoft Drivers para PHP (early technical preview).

También en la evolución de estas herramientas hay un cambio radical, de instalaciones totalmente artesanales al principio ya hemos llegado al punto en que el primero está disponible con yum y el segundo es compatible con repositorios existentes como los de remi.
Voy a comenzar asumiendo que ya tienes instalado PHP 7 (importante, la versión 7 es la única soportada) en tu servidor con CentOS 7, si no sabes cómo, lo puedes ver en el post donde instalo las últimas versiones de nginx y php.

Instalando Microsoft ODBC Driv…

CentOS 7 en Hyper-V segunda generación

Imagen
No es raro que cuando intentes instalar CentOS 7 en Hyper-V si has escogido la generación 2 te salga el siguiente mensaje de error: the image hash and certificate are not allowed. Lo primero que te da por pensar es que no está soportado, pero error, si lo está y aquí podéis consultar la lista completa de sistemas operativos soportados en la generación 2 de maquinas virtuales para Hyper-V.
Entonces, si está soportado ¿que pasa? La pista me la dio el siguiente post, pero como siempre ocurre, es un post antiguo y esta un poco obsoleto y mal. Lo que ocurre es que entre las ventajas de la segunda generación está el arranque seguro, y más que deshabilitarlo, como recomiendan en el post anterior, lo que tenemos que hacer es cambiar la plantilla que viene por defecto y debemos elegir Microsoft UEFI Certificate Authority.


Y con estos sencillos pasos ya tendremos instalado un CentOS 7, que podremos descargar la iso desde aquí, en nuestro Hyper-V con una máquina virtual de segunda generación.

Slim 3 en Apache como proxy de Nginx

Imagen
Supongo que si has llegado a este post es que conoces Slim, pero para los que no, voy a hacer una pequeña introducción. Slim es un micro framework PHP que te ayuda a escribir con rapidez aplicaciones web simples pero potentes y APIs. Aunque esa es su definición, Slim es realmente útil a la hora de crear servicios web. Ya va por la versión número 3 y aunque no tiene ni página en la Wikipedia, es bastante recomendable.


Bien, yendo al grano. Si bien en su página web de documentación vienen detalladas las configuraciones para nginx, apache y otros servidores, lo que no viene es la configuración si tenemos un Nginx como front que utiliza Apache como proxy para las peticiones de PHP. Para este caso concreto lo que debemos hacer es configurar Nginx para que envíe la petición tal y como la recibe a Apache y que apache se encargue de procesarla.
Imaginemos que el servicio web se encuentra en una subcarpeta de nuestra aplicación, /api, de manera que accedemos /api/public.

Esta es la configurac…

Migrar una web con PHP de Windows a Linux

Imagen
Si bien es cierto que el código PHP es el mismo para un servidor Windows como para uno Linux, a la hora de migrar hay que tener algunas cosas en consideración. Si bien la migración de un servidor Linux hacia uno con Windows es más transparente, la contraria lleva algunas tareas especiales.


Lo más importante son las rutas include, mientras Windows soporta tanto include_once 'clases/db.php'; como include_once 'clases\db.php', en Linux sólo se soporta la barra \. Este sería el cambio más importante a tener en cuenta. Luego tenemos que ver si nuestro código tiene extensiones específicas de Windows, si son críticas y no encontramos alternativas, impedirían la migración.
Un último punto a tener en cuenta son las llamadas a funciones de la línea de comandos con exec por ejemplo. Seguramente los comandos ejecutados no sean los mismos y las respuestas sean totalmente diferentes.