Blog Archives

Multiples versiones de PHP desde un mismo servidor Apache

Podemos enfrentar muchas situaciones en donde sea necesario correr múltiples versiones de PHP en paralelo. En el caso del cual extraigo este ejemplo la necesidad pasaba por brindar soporte a una aplicación moderna con PHP 7.2 y, al mismo tiempo, a un desarrollo personalizado que no permitía dejar la rama 5.x.

Como punto de partida utilizamos Debian 9 Stretch, ya que cuenta con una nueva infraestructura para paquetes PHP que maneja el versiones de manera nativa.

Instalar PHP

PHP 7.2

Instalamos PHP 7.2 desde los repositorios de Debian.

$ apt-get install php7.2-cli php7.2-fpm

Versiones anteriores de Debian usaban simplementephp5mientras que la nueva infraestructuraphpX.Y. De esta manera podemos instalar múltiples versiones de PHP en paralelo.

PHP 5.6

Debian ofrece solamente una única versión de PHP en el repositorio oficial. Afortunadamente existe un repositorio mantenido por el encargado de los paquetes oficiales de PHP en Debian, Ondřej Surý. Visita su página acerca de paquetería para aprender más. (También existe un repositorio PPA en caso que uses Ubuntu en lugar de Debian.)

Agregamos este repositorio (al tiempo que habilitamos HTTPS para APT y registramos la clave APT):

$ apt-get install apt-transport-https
$ curl https://packages.sury.org/php/apt.gpg | apt-key add -
$ echo 'deb https://packages.sury.org/php/ stretch main' > /etc/apt/sources.list.d/deb.sury.org.list
$ apt-get update

Ahora podemos instalar los paquetes desde allí:

$ apt-get install php5.6-cli php5.6-fpm

Esto instalará PHP 5.6 en paralelo con el PHP 7.2 instalado anteriormente. Podemos verificar esto con:

$ php7.2 -v
PHP 7.2.0-1 (cli)
$ php5.6 -v
PHP 5.6.32-1 (cli)

Configurar PHP

La configuración se almacena en ubicaciones versionadas también. Además, la configuración está separada para cada SAPI. Lo mismo se aplica para los módulos PHP así que no habrá que preocuparse acerca de módulos incompatibles entre versiones.

La configuración de PHP 7.2 FPM se almacena en /etc/php/7.2/fpm y PHP 5.6 en /etc/php/5.6/fpm. Cada instancia FPM consiste de múltiples pools. Cada sitio/proyecto debería tener su pool separado así que creamos una copia de la configuración predeterminada.

$ cp /etc/php/7.2/fpm/pool.d/www.conf /etc/php/7.2/fpm/pool.d/php72.conf
$ cp /etc/php/5.6/fpm/pool.d/www.conf /etc/php/5.6/fpm/pool.d/php56.conf

Buscamos la opción listen. Tendría que ser igual a /run/php/php7.2-fpm.sock o similar. Ahora hacemos los mismo para 5.6, debería contener lo mismo pero con 5.6 en lugar de 7.2. Esto también podría ser una dirección vinculada, ej. dirección IP con puerto (lo cual es más conveniente, en términos de desempeño, que sockets para entornos de producción).

Configurar Apache

Creamos un VirtualHost para cada versión de PHP, ej. /etc/apache2/sites-available/php7.2.conf

Agregamos


<VirtualHost>
...
<FilesMatch "\.php$">
   SetHandler proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost
</FilesMatch>
...
</VirtualHost>

Habilitamos el sitio

$ a2ensite php7.2

Y hacemos lo mismo con la configuración para PHP 5.6

Luego habilitamos los módulos necesarios

$ a2enmod proxy_fcgi

Y, por último, reiniciamos los servicios

$ systemctl restart php5.6-fpm php7.2-fpm apache2

Probando todo

Para probar que todo funcione de la manera que esperamos creamos un archivo PHP con la instrucción phpinfo, si todo está bien FPM/FastCGI aparecerá en la salida.

$ echo '<?php phpinfo(); ?>' > /var/www/sitio-php7.2/info.php

 

 

Fuentes |

Publicado en General

Convertir imagenes a PDF desde la línea de comandos

La herramienta ImageMagick nos permite llevar a cabo esta tarea de manera sencilla.

La sintáxis es la siguiente:

$ convert a.png b.png c.png (...) x.png multipagina.pdf

Ahora bien, es muy probable que el resultado no se ajuste a un tamaño de papel estándar para lo cual debemos definir de manera explícita para el destino mediante la opción ‘resize’:

$ i=150; convert a.png b.png c.png -compress jpeg -quality 70 \
 -density ${i}x${i} -units PixelsPerInch \
 -resize $((i*827/100))x$((i*1169/100)) \
 -repage $((i*827/100))x$((i*1169/100)) multipagina.pdf

El comando convert no siempre usa DPI como la unidad predeterminada para la densidad/formato de página, así pues debemos especificar de manera explicita los DPI con la opción -units (de otro modo es probable que obtengamos resultados diferentes con distintas versiones/combinaciones de formato de entrada). El nuevo tamaño (especificado vía -resize) es la dimensión de una hoja A4 en pixeles. El argumento resize especifica el tamaño máximo de página. La resolución y calidad exacta a escoger depende del uso en cada caso. En el ejemplo se seleccionó 150 DPI y calidad promedio para ahorrar algo de espacio al tiempo que no se ve tan mal una vez impreso.

Debemos notar que convert no cambia la relación de aspecto de manera predeterminada con la operación resize:

Resize encajará la imágen en el tamaño requerido. Aunque NO rellena el tamaño de caja.

Manual de ImageMagick: http://www.imagemagick.org/Usage/resize/#resize

Dependiendo de la versión de ImageMagick y el formato de entrada involucrado se podría omitir la opción -repage. Pero algunas veces se requiere y sin esa opción el encabezado del PDF podría contener dimensiones muy pequeñas. En cualquier caso, -repage no debería molestar.

El cómputo usa aritmética de enteros ya que bash soporta eso solamente. Con zsh las expresiones pueden ser simplificadas – ej. $((i*8.27))x$((i*11.69)).

 

 

unix.stackexchange.com

Publicado en General, Miniguías

Reparar discos duros con sectores defectuosos Ubuntu

Recientemente me encontré que un ubuntu 12,04 que me reportaba un problema de sectores de mi disco. Podemos hacer una reparación de la siguiente forma, si el disco que queremos reparar es el que contiene el sistema operativo deberemos utilizar un live-cd para poder realizar la reparación, ya que necesitamos que el disco no esté montado, si es otro el caso podemos usar el siguiente comando en la consola.

$ sudo badblocks -s -v -n -f /dev/sda

Donde /dev/sda será el dispositivo que intentaremos reparar, para ver cual es el nuestro podemos utilizar el comando fdisk -l y comprobarlo. Ahora os explico en que consisten los argumentos utilizados.

-s muestra el proceso de la operación utilizando porcentajes.
-v nos indica el modo de escritura utilizado.
-n utiliza el modo no destructivo para recuperar sectores defectuosos e intentará recuperar la información.
-f fuerza la lectura/escritura en los dispositivos montados, esta opción es muy peligrosa, es recomendable no utilizarla. Únicamente sería segura utilizarla cuando tenemos el fichero /etc/mtab dañado y estamos seguros que el dispositivo está desmontado.
Fuente: Reparar discos duros con sectores defectuosos con Ubuntu 12.04

Publicado en General

Habilitar boot linux en sistemas EFI

Esto es un artículo interesante para poder hacer arrancar nuestros sistemas linux en computadoras que poseen el nuevo sistema EFI
lignux

Publicado en General

Como instalar o actualizar wordpress plugins sin proporcionar acceso ftp?

Hace ya un tiempo que tenemos instalado en nuestra oficina WordPress para algunos sitios. Nuestro versionado estaba con una versión menos, entonces mi buen amigo daniel me informa que ya esta disponibles la versión 3.6.
Desde hace ya un tiempo que no me funcionaba el proceso de actualización automática del WordPress, por tal motivo el proceso de actualización lo hacíamos de forma manual.
Pero al ingresar al administrador recibo la grata sorpresa que nuevamente el actualizador automático funcionaba, tanto para el núcleo de la aplicación como también para los plugins, me mostraba cuales eran los plugins que me faltaban actualizar, muy contento y sin dudar le digo que me actualice todo, pero…… me encuentro que me pide la información de conexión ftp de mi servidor, hasta ahí todo bien, el problema es que no tengo servidor FTP instalado, por ende no funcionaba la actualización automática.
Entonces comencé a buscar con el señor San google de como actualizar WordPress sin que me pida los datos de conexión ftp.
Después de un buen rato dando vueltas por la web encontré a lo que a mi parecer una solución sencilla, es agregando la siguiente línea que muestro abajo en el en el archivos wp-config.php
define(‘FS_METHOD’, ‘direct’);

Según lo que leí el método de conexión también pude ser definir el método de conexión como ‘direct’ ‘ssh’, ‘ftpext’ or ‘ftpsockets’ . Tenga en cuenta que si se define como ‘directo’ pero su usuario de la web (el nombre de usuario bajo el cual se ejecuta el servidor de webs) no tienen permisos de escritura correcta, podrá recibir un error.

Con esto pude actualizar, todo el WordPress, como también todos los plugins sin ningún problema, en lo personal me fue muy útil esta solución y le dejo para si alguien quizás le pueda servir tanto como a mi

Publicado en General

Atajos de teclado en la consola

Los que trabajamos en la consola de linux siempre es bueno saber cuales son la los atajos en el uso del teclado

http://conociendolinux.wordpress.com/

Ctrl-a Ir al principio de la linea
Ctrl-e Ir al final de la linea.
Ctrl-b Retroceder un caracter.
Alt-b Retroceder una palabra
Ctrl-f Avanzar un caracter
Alt-f Avanzar una palabra.
Alt-] x Avanzar hasta la siguiente ocurrencia del caracter x.
Alt-Ctrl-] x Retroceder hasta la anterior ocurrencia del caracter x.
Ctrl-u Borrar desde el cursor hasta el principio de la linea
Ctrl-k Borrar desde el cursor hasta el final del linea
Ctrl-w Borrar desde el cursor hasta el principio de la palabra
Ctrl-Shift-V Pega el texto del portapapeles
Ctrl-Shift-C Copia el texto del portapapeles
Ctrl-l borra la pantalla
Publicado en General

Cómo saber la versión de Ubuntu/Debian instalada

Bueno despues de mucho tiempo sin aportar nada he aquí nuevamente tratando de retomar en colocar unas líneas y que sea de alguna utilidad para comunidad. Ahora bien el tema propuesto es que varias veces tuve que necesitar saber que versión de linux tengo instalada en mi pc por supuesto desde la consola no de forma gráfica. Aunque muchos crean que puede ser una tonteria pero realmente no sabía o no me acordaba de como hacerlo, así que por supuesto como siempre lo que hice fue preguntarle a señor google y me contesto en esta wiki. Asi que en caso que tengan la misma duda que tuve le dejo aquí abajo la solución

Podemos ejecutar un sencillo comando para averiguar que versión de nuestro sistema operativo:

lsb_release -a

Otro comando alternativo para obtener la misma información es:

cat /proc/version

Esta instrucción funciona en Ubuntu, para Debian tenemos que usar una variante muy similar:

cat /etc/debian_version

OsluviWiki

Publicado en General

Instalacion AdobeFlashPlayer 64bits

Los otros días tuve un problema en la pc de una compañera de trabajo que trataba de ver videos de youtube con Firefox bajo un ubuntu 10.04 de 64 bits no lo podía lograr o mejor dicho no se reproducía el video. Me llamo para que tratara de solucionarle el problema; por supuesto nada es facil para el técnico de informática. Asi que me puse a buscar con el gran amigo google y encontre este fantástico script que te soluciona este problema.
Lo comparto para aquellos que tengan el mismo problema. Lo único que deben hacer es darle permisos de ejecución, correr el script en la consola por supuesto deben de antes tener cerrado el Firefox.

Publicado en General

Verificar la seguridad de las contraseñas de GNU/Linux

En mi trabajo tengo un servidor de correo y me paso hace un año atras que tuvimos nuestros sistema comprometido usando el mismo server como relay de correo spam, la verdad no le deseo a nadie esa experiencia dado que como nunca hemos hemos pasdo por algo semejante nos costo mucho detectar el problema, solamente puedo dar gracias a la comunidad y a dos amigos que saben del tema y me ayudaron a detectar el problema como también me ayudaron a darle un poco mas de seguridad nuestro servidor correo.
Despúes haber pasado por dicha experiencia trato de tener ser un poco mas cuidadoso y cada tanto revisar como también de verificar las contraseñas de los usuarios de nuestro servidor para evaluar si son mas o menos seguras.
Aquí les dejo los pasos para verifcar las contraseñas de los usuarios de un sistema linux por medio de esta herramienta llamada John the Ripper que desde mi punto de vista es una buena opción para la seguridad de nuestros sistemas.

1 – Como primera instancia debemos instalar el paquete que se encuentra en los repositorios

1
 $ sudo ap-get install john

2 – El siguiente paso es generar generar un archivo intermedio entre la lista de usuarios y sus contraseñas cifradas.

1
$ sudo unshadow /etc/passwd /etc/shadow &gt;usuarios.db

3 – Luego comenzamos el proceso de verificación de contraseñas por fuerza bruta

1
$ john usuarios.db

4 – Debemos destacar que este escaneo puede llevar bastante tiempo y recursos de procesamiento. En cualquier momento es posible consultar las contraseñas que ya han sido determinadas y la cantidad de contraseñas pendientes mediante la siguiente lìnea.

1
$ john -show usuarios.db

5 – En caso de que el proceso haya sido cortado se puede continuar el escanero con solo ubicárse en el mismo directorio donde se encuentra el archivo de datos y ejecutando la siguiente línea

1
$ john -restore

Podría ocurrir que al ejecutar el comando john usuarios.db nos encontremos frente a este mensaje de error: “No password hashes loaded“. Este error se puede producir por alguno de los siguientes motivos:

* El fichero de contraseñas que le estamos pasando a John no tiene las contraseñas. Esto se debe a que o bien no hemos escrito bien el nombre del fichero (usuarios.db) o bien ha ocurrido algún tipo de error en el paso 2 (por ejemplo, se nos olvidó escribir el sudo).

* Todas las contraseñas del fichero que se le pasa como parámetro (usuarios.db) ya han sido crackeadas. Ejecutamos john –show usuarios.db y las mostrará.

http://www.ubicuos.com
http://sliceoflinux.com

Publicado en General

Icono de control de volumen en Ubuntu 10.10

icono volumen
Tengo dos niñas de las cuales cada de ellas son usuarios de pc. El problema que ellas tocan desde la pantalla con sus manos hasta el hecho de realizar acciones mas insólitas en la pc.
Hoy me paso con una de mis hijas dice papa desapareció el icono del volumen en tu pc y te aclaro que yo no toque nada. Bueno paciencia me senté en la pc a ver como solucionar este tonto problema pero la verdad no le encontraba la forma que aparezca este sencillo icono.
Así que acudí como siempre don google para ver como puedo solucionar este pequeño problema y aquí le dejo la solución que a mi me fue de utilidad

1 – Ir a : Sistema,-> Preferencias -> Aplicaciones de inicio

2 – Cliclear en Añadir

3 – Luego complete los cuadros con el contenido que sigue abajo:

Nombre: Control de volumen

Comando: gnome-volume-control-applet

Comentario: Icono de control de volumen

http://bujaina.blogspot.com

Publicado en General