Entradas

Mostrando las entradas etiquetadas como configuraciones

Instalar PHP 7.4+ en MacOS Catalina 10.15+

Imagen
  Ahora instalar PHP es muchísimo más sencillo en Mac, con un solo comando podemos hacerlo tal y como se hace en CentOS. brew install php php -v PHP 7.4.2 (cli) (built: Jan 22 2020 06:30:58) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.2, Copyright (c), by Zend Technologies Si la versión de PHP no es la última, es posible que hayas instalado una versión previa utilizando el script de liip , si es tu caso te recomiendo desinstalarlo, el problema es si liip te lo ha instalado en /usr/bin/php en vez de /usr/local/bin/php , que seguramente es tu caso porque brew lo instala en esta última ubicación. Desisntalar PHP instalado con liip sudo rm -rf /usr/local/php* Luego necesitas deshabilitar System Integrity Protection , para ello tienes que reiniciar en modo recuperación (Command + R) y sin elegir ninguna opción del menú, ir al Terminal y ejecutar csrutil disable , para más info puedes consultar este ot...

Actualizar a PHP 7.3+ en MacOS Mojave 10.14+

Imagen
Mac suele venir con alguna versión de PHP, pero al igual que CentOs estas versiones nunca son las últimas. Buscando por internet hay muchísimos manuales que te permiten actualizar a la última versión de PHP en MacOS, pero todo son para apache, si necesitas ejecutar PHP en el terminal siempre vas a tener la versión por defecto. Por suerte este se puede modificar muy fácilmente. Para instalarlo he seguido los pasos de este manual , que, aunque en la página oficial diga que el soporte es hasta la versión 10.13 de OSX para la 10.14 también funciona. Luego necesitamos editar nuestro terminal para que la versión sea la correcta, esto lo haremos de manera sencilla así: nano ~/.bash_profile Agregamos la siguiente línea export PATH="/usr/local/php5/bin:$PATH" CTRL+O CTRL+X source ~/.bash_profile

Node como servicio en CentOS 7

Imagen
Al instalar Node este no lo hace como un servicio, por eso para entornos de producción donde es necesario que el sistema este activo 24/7 es necesario utilizar alguna herramienta para este propósito. Existen varias alternativas entre las cuales está crear un script y ejecutarlo como servicio, utilizar upstart o módulos propios de node como forever o pm2 , de este último va el post. PM2 es un gestor de procesos en entornos de producción para aplicaciones Node.js con un balanceador de carga incorporado. Permite mantener las aplicaciones siempre activas, recargarlas sin tiempo de inactividad y facilitar las tareas comunes de un administrador del sistema. sudo npm install pm2@latest -g sudo pm2 startup sudo pm2 save sudo pm2 start app.js sudo systemctl restart pm2-root $ sudo pm2 start app.js [PM2] Spawning PM2 daemon with pm2_home=/root/.pm2 [PM2] PM2 Successfully daemonized [PM2] Starting /folder/app.js in fork_mode (1 instance) [PM2] Done. ┌──────────┬────┬──────┬─────┬─────...

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. IDE RAM Zend Studio 13.5.1 905 MB NetBeans 8.2 830 MB PHP Tools Visual Studio 2017 320 MB Visual Studio Code 1.11 30 MB Servicios Un buen entorno no solo debe presentar las herramientas necesarias para refactorizar, comprobar y rastrear errores, intellisense, sino permitir la inte...

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 fe...

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 . Instala...

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 vi...

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. Est...

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.

Servidores web para Windows

Imagen
Llevo ya muchos años trabajando con servidores web, de ellos bastante tiempo sobre Windows y es bastante complicado. Llegar a una configuración óptima en Windows solo puede ser con prueba y error, no hay una receta mágica que te lo permita, pero no por ello son malos servidores, en mi opinión creo que se han dejado de lado. Windows representa sólo el 32,2 % en los sistemas operativos que mantienen servidores web. ¿Por qué tan poca cuota? Para montar un servidor web bajo Windows sólo existen 2 excusas potentes: Trabajas con ASP Tu base de datos está en Microsoft SQL Server Para el punto 1 no hay alternativa posible, ASP necesita IIS y por ello Windows. Por el contrario el punto 2 es más susceptible a cambio (y más ahora con los nuevos desarrollos en los que la propia Microsoft está involucrada como el driver ODBC y la adaptación a Linux del propio SQL Server ). Para trabajar con SQL Server no es necesario ASP, puedes acceder desde PHP con ODBC, eso si...

Restaurando archivos ibd en tablas InnoDB

Imagen
Este post es una recopilación de la información más actual para para restaurar una base de datos MySQL a partir de los archivos de datos en entornos Windows. La versión de MySQL es la 5.7.11. ¿Por qué restaurar? En mi caso al cambiar de ordenador se me olvidó hacer una copia reciente de la base de datos con lo cual al instalarlo todo en el nuevo habría perdido un mes entero de trabajo, por fortuna disponía del disco duro anterior. ¿Qué necesitamos para restaurar la base de datos MySQL? Necesitamos un backup de la estructura de la base de datos (actualizada) o un backup completo en el que la estructura sea la correcta (si el backup es actual no necesitaríamos restaurar los datos desde los archivos, el problema es que la que tenía era un mes antigua). Lo siguiente son los archivos de datos, que en Windows se encuentran en la siguiente ruta: C:\ProgramData\MySQL\MySQL Server 5.7\Data\dbname. La carpeta ProgramData está oculta. En esta ubicación encontraremos va...

Microsoft ODBC driver 13 para CentOS 7

Imagen
Vamos a instalar el nuevo driver ODBC de Microsoft en un CentOS 7, pieza indispensable para futuro lanzamiento de su driver específico para Linux . Lo primero que haremos será descargar el driver ODBC desde la página oficial de Microsoft y comprobar los requerimientos mínimos para nuestro sistema operativo . yum info glibc yum info e2fsprogs yum info krb5-libs yum info openssl Para evitar errores del tipo Error: configure: error: no acceptable C compiler found in $PATH , y sobre todo en sistemas nuevos, debemos instalar un compilador para c yum groupinstall "Development tools" Instalando unixODBC Driver Manager para Microsoft ODBC Driver 13 (Preview) para SQL Server Ahora necesitamos instalar el driver manager sobre el que basa la conexión el ODBC de Microsoft. La opción más sencilla es utilizar el script de instalación que viene por defecto. Importante: la versión soportada es la que distribuye Microsoft, debéis desinstalar versiones ya existentes, da...

Instalar últimas versiones de nginx, php y mysql en CentOS 7

Imagen
Trabajar con las últimas versiones de software en sistemas como CentOS a veces suele ser difícil, sobre todo a la hora de encontrar repositorios que te permitan mantener el mismo nombre de paquetes y así poder actualizar los existentes. A día de hoy estas son las versiones que tengo instaladas, todas con los nombres de paquetes oficiales, nginx, php y mysql, (existen otros repositorios que te permiten instalar php 7 pero con un nombre diferente php70 o php70w según el repositorio que consultes): CentOS Linux release 7.2.1511 (Core) Server version: 5.7.10 MySQL Community Server (GPL) nginx version: nginx/1.9.9 PHP 7.0.1 (cli) (built: Dec 16 2015 15:23:56) ( NTS ) Repositorios necesarios Para instalar MySQL descargaremos el repositorio oficial de Oracle, desde que MySQL fue comprado por Oracle la comunidad de CentOS se ha decantado por MariaDB con lo cual no hay disponibles versiones para CentOS. rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-7...

Activar acceso remoto MySQL en CentOS 7

Luego de configurar MySQL 5.7 en CentOS 7 es posible que queramos acceder de manera remota para gestionar las bases de datos, no es recomendable permitir el acceso remoto a root pero si tal vez interese a un usuario específico dentro de IPs específicas. Lo primero que debemos habilitar es el puerto en el firewall, CentOS 7 ya no utiliza iptables sino firewall. Para habilitar el puerto debemos especificar para que zona lo queremos abrir. Consultamos las zonas con el siguiente comando: firewall-cmd --get-active-zones Esto nos debería devolver algo así: public   interfaces: eno16777984 Dónde interfaces lo podemos asociar a la ip con ifconfig. En este caso sólo tenemos una zona, public. firewall-cmd --zone=public --add-port=3306/tcp –permanent firewall-cmd –reload Una vez abierto el puerto ahora debemos configurar MySQL para que el usuario deseado acceda de manera remota: $ mysql -u root -p Enter password:    mysql> use mysql    my...

Alta disponibilidad con un espejo en SQL Server

SQL Server tiene varias formas para que dispongamos de alta disponibilidad en nuestras bases de datos, en este post veremos una de ellas: la creación de un espejo. Para mi la creación de un espejo vs un clúster es una preferencia personal, creo que un clúster es más complejo de mantener y gestionar, es más caro porque ambas máquinas comparten el almacenamiento y por lo menos mi experiencia con SQL Server 2008 R2 no fue muy buena y sin un soporte premiun por parte de Microsoft los fallos son difícilmente corregibles. En cambio un mirror o espejo es sencillo de configurar y pueden ser dos máquinas totalmente independientes. ¿Por qué crear un espejo en SQL Server? Porque este método permite hacer una réplica exacta de una base de datos de un servidor a otro. La gran ventaja de este método es que permite el failover automático sin intervención humana (siempre que se instale un tercer servidor witness). La desventaja del mirror es que sólo podemos tener una máquina secundaria o mirro...

CentOS 7 reset root password MySQL 5.7

Si habéis llegado aquí estáis en el lugar correcto dónde podréis restaurar la contraseña de root en MySQL 5.7 . Internet está plagado de tutoriales dónde te indican cómo hacer esto pero ninguno está actualizado a las últimas versiones de CentOS y MySQL, además por todos es conocido que el soporte a MySQL por parte de la comunidad Open Source ha menguado desde su compra por Oracle. ¿Que cambia en CentOS 7 y MySQL 5.7? CentOS 7 incorpora systemd (Sistema y administrador de servicios para Linux, compatible con scripts de inicio SysV) y su herramienta de administración systemctl . ¿en que afecta esto? Pues que el script mysql_safe no está disponible (no se instala) en estos sistemas y hay que utilizar otras alternativas y gestionar mysql server community desde systemd . La tabla de usuarios en MySQL 5.7 ya no tiene campo password ahora es authentication_string. Restaurar contraseña root en MySQL 5.7 y CentOS 7 systemctl set-environment MYSQLD_OPTS="--skip-grant-...

Mailman y las copias ocultas

Si por un casual recibís los siguientes errores en el mailman y no encontráis explicación posible a por qué siendo enviados los mensajes a las direcciones de manera correcta aparece, la causa es que no soporta el envío con copias ocultas sin pasar primeramente por la aprobación del moderador. Ha sido retenido en espera de que el moderador de la lista lo revise y apruebe. Ha sido retenido por: El mensaje no va dirigido explícitamente a la lista O se mandará el mensaje a la lista o se le enviará una notificación con la decisión del moderador. O la versión en inglés Message has implicit destination

Instalando Parsoid en openSuse 11.4

Tener una versión poco actualizada de un sistema operativo, sobre todo Linux acarrea muchos problemas a la hora de instalar cualquier software, es lo que me pasó al intentar instalar Parsoid en un openSuse 11.4 y aquí os lo cuento para ayudar a todos lo que lo necesiten y evitar que tengan que consultar tantos manuales como yo. Parsoid es una aplicación que puede traducir en tiempo de ejecución la sintaxis de MediaWiki y un modelo de documento RDFa , con soporte mejorado para el procesamiento automatizado y la edición. Ha estado en desarrollo por un equipo de la Fundación Wikimedia desde el año 2012. Parsoid está estructurado como un servicio web, y está escrito en JavaScript, haciendo uso de Node.js. Instalando Node en openSuse 11.4 Esta parte seguramente está incompleta porque yo ya lo tenía instalado y estos son los únicos pasos que recuerdo. sudo zypper ar \ http://download.opensuse.org/repositories/devel:/languages:/nodejs/openSUSE_11.4/ \ Node.js sudo zypper in...

MediaWiki y Font Awesome

Este tutorial se aplica a Media Wiki 1.25 y cualquier versión de Font Awesome . Font Awesome para los que aún no sepan es un set de iconos vectoriales escalables que instantáneamente pueden personalizar el tamaño, color,  sombra, y todo lo que se puede hacer con el poder de CSS, por ello incluirlo en una instalación de MediaWiki nos puede ahorrar muchas imágenes y da un toque de diseño especial. Font Awesome para Media Wiki está incluido como parte de la extensión MegaMenú , pero puede ser instalada de forma separada que es lo que he hecho yo. El primer paso es descargar el código fuente de la extensión desde la página oficial o desde el enlace directo . Luego descomprimimos el archivo ZIP. Si queremos la ultima versión de los íconos vamos a la página oficial los descargamos y descomprimimos. Sustituimos en el directorio font-awesome de la extensión las carpetas css, fonts, less y scss con la que hemos descargado con la última versión de los íconos. Copiamos toda l...

Actualizando MediaWiki 1.15 a 1.25

Los primero para actualizar nuestra versión de MediaWiki es hacer una copia de seguridad del código y de la base de datos (nunca se sabe). Este tutorial se aplica a la actualización de Media Wiki 1.15 a 1.25 en un openSuse 11.4. Actualizando MediaWiki Entramos al directorio raiz de la aplicación, en mi caso /srv/www/wiki y ejecutamos estos comandos wget releases.wikimedia.org/mediawiki/1.25/mediawiki-1.25.2.tar.gz # descomprimimos el archivo y sustituimos todos los ficheros con la nueva versión tar xvzf mediawiki-1.25.2.tar.gz -C /srv/www/htdocs/devwiki/ --strip-components=1 # eliminamos el archivo descargado rm mediawiki-1.25.2.tar.gz # entramos al directorio de mantenimiento cd maintenance Antes de actualizar debemos ir al código y eliminar (o renombrar el archivo StartProfiler.php) mv StartProfiler.php StartProfiler.old Con esto evitaremos errores del tipo: Fatal error: Cannot redeclare wfProfileIn() # ejecutamos la actualización php5 update.php Con estos sencillos pasos d...