Administrar versiones de PHP con Phpbrew

Author Top
enzo

Si eres un programador PHP Estoy seguro de que has estado en una situación en la que necesitas mantener varios proyectos y es posible que algunos de ellos requieren diferentes versiones de PHP.

Hoy en día para resolver la situación antes descrita la recomendación común es instalar una máquina virtual como Vagrant o Docker las cuales por supuesto funcionan, pero si usted no es un gran fan de las máquinas virtuales como yo y especialmente si es solo para cambiar la versión de PHP. Bueno hoy te tengo una buena noticia que pueda resolver sus problemas mediante el proyecto Phpbrew.

1. Instalar Phpbrew.

Primero debemos asegurarnos que nuestro sistema tiene las dependencias necesarias.

1.1 Dependencias.

Si ya dispone de un entorno de desarollo en PHP es probable que usted puede saltarse esta sección.

Se requieren los siguientes programa.

  • automake
  • autoconf
  • curl
  • pcre
  • re2c
  • mhash
  • libtool
  • icu4c
  • gettext
  • jpeg
  • libxml2
  • mcrypt
  • gmp libevent

Si estas en Mac OS X y utiliza brew puedes utilizar el siguiente comando.

$ brew install automake autoconf curl pcre re2c mhash libtool icu4c gettext jpeg libxml2 mcrypt gmp libevent
$ brew link icu4c

1.2 Descargar, Instalar e Initicializar

Para instalar sólo tiene que ejecutar los siguientes comandos

$ curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
$ chmod +x phpbrew
$ sudo mv phpbrew /usr/bin/phpbrew

Ahora debe inicializar el sistema ejecutando el siguiente comando.

$ phpbrew init

A continuación debes añadir estas líneas a tu .bashrc, .bash_profile o archivo .zshrc

export PHPBREW_SET_PROMPT=1
source ~/.phpbrew/bashrc

2. Comandos Phpbrew

2.1 Lista de versiones PHP disponibles para ser instaladas.

$ phpbrew known
5.6:  5.6.1, 5.6.0 ...
5.5:  5.5.17, 5.5.16, 5.5.15, 5.5.14, 5.5.13, 5.5.12, 5.5.11, 5.5.10 ...
5.4:  5.4.33, 5.4.32, 5.4.31, 5.4.30, 5.4.29, 5.4.28, 5.4.27, 5.4.26 ...
5.3:  5.3.29, 5.3.28, 5.3.27, 5.3.26, 5.3.25, 5.3.24, 5.3.23, 5.3.22 ...

2.2 Instalar una versión específica de PHP.

$ phpbrew install 5.5.10

Es necesario esperar hasta que Phpbrew termine de configurar el sistema, tenga paciencia.

2.2 Instalar PHP con librerías específicas o variante virtual.

$ sudo phpbrew install 5.5.10 +mysql +pdo +ctype +mhash +hash +iconv +json +iconv +gd +apxs2=/usr/sbin/apxs -- --with-gd --enable-gd-natf --with-jpeg-dir --with-png-dir

$ sudo phpbrew install 5.5.10 +default +mysql +hash +iconv +gd +apxs2=/usr/sbin/apxs -- --with-gd --enable-gd-natf --with-jpeg-dir --with-png-dir

Si usted no sabe dónde se encuentra el directorio apxs para su apache, puede ejecutar el siguiente comando.

$ whereis apxs
/usr/sbin/apxs

Las anteriores obras de instalación para utilizar con Drupal 8 y Spress.

2.3 Obtener una lista de las bibliotecas o variantes disponibles

$ phpbrew variants
Variants:
  all, apxs2, bcmath, bz2, calendar, cgi, cli, ctype, curl, dba, debug, dom,
  embed, exif, fileinfo, filter, fpm, ftp, gcov, gd, gettext, hash, iconv,
  icu, imap, inifile, inline, intl, ipc, ipv6, json, kerberos, libgcc,
  maintainer, mbregex, mbstring, mcrypt, mhash, mysql, opcache, openssl,
  pcntl, pcre, pdo, pgsql, phar, phpdbg, posix, readline, session, soap,
  sockets, sqlite, static, tidy, tokenizer, wddx, xml, xml_all, xmlrpc,
  zip, zlib


Virtual variants:
  dbs: sqlite, mysql, pgsql, pdo
  mb: mbstring, mbregex
  neutral:
  default: bcmath, bz2, calendar, cli, ctype, dom, fileinfo, filter, ipc,
  json, mbregex, mbstring, mhash, mcrypt, pcntl, pcre, pdo, phar, posix,
  readline, sockets, tokenizer, xml, curl, zip


Using variants to build PHP:

  phpbrew install php-5.3.10 +default
  phpbrew install php-5.3.10 +mysql +pdo
  phpbrew install php-5.3.10 +mysql +pdo +apxs2
  phpbrew install php-5.3.10 +mysql +pdo +apxs2=/usr/bin/apxs2

2.4 Listar versiones pde PHP disponibles en el sistema.

$ phpbrew list
Installed versions:
* php-5.5.10

2.5 Cambiar version de PHP

$ phpbrew switch php-5.5.10

2.6 Deshabilitar PHPBrew

$ phpbrew off
phpbrew is turned off.

Después de desactivar Phpbrew puede ejecutar el siguiente comando para comprobar el estado actual del sistema

$ phpbrew list
Installed versions:
* (system)
  php-5.5.10

Como se puede ver la versión de PHP disponible será la versión normal PHP que tiene tu sistema, por supuesto es posible habilitar de nuevo otra versión de PHP con el comando que se explicó anteriormente.

2.7 Activar versión de PHPbrew en Apache

Después de activar una versión de PHP debemos informar a Apache sobre esta nueva versión de PHP, editando el archivo de configuración de Apache /etc/apache2/httpd.conf o /private/etc/apache2/httpd.conf como se puede ver en el siguiente fragmento de la configuración.

#LoadModule php5_module libexec/apache2/libphp5.so #Disabled
LoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so
LoadModule php5_module libexec/apache2/libphp5.5.10.so

Como se puede imaginar se requiere un reinicio del servicio de Apache.

2.8 Actualizar PHPBrew

$ phpbrew self-update

2.9 Modificar el PHP info

Es probable que después de habilitar una nueva versión de PHP se haya tu configuración anterior, para determinar dónde se encuentran sólo necesita ejecutar el siguiente comando.

$ phpbrew info | grep php.ini
Loaded Configuration File => ~/.phpbrew/php/php-5.5.10/etc/php.ini

Retire la parte grep para obtener toda la información.

Espero que haya sido de su agrado.