Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

Por alguna razón, puede que le interese mantener una o varias versiones de PHP en un mismo servidor, bien porque tuviera alguna vieja aplicación web a la que todavía no le ha dado tiempo a actualizar, o bien porque quiera probar nuevas versiones Beta de PHP, y no quiere que interfieran en el normal funcionamiento de las aplicaciones que ya están corriendo, en este artículo vamos a explicar, como siempre de la forma más sencilla posible como hacerlo, siempre es recomendable probar primero en su localhost.

Configuración:

Básicamente tendremos que descargarnos la versión de PHP con la que queremos trabajar, pero en vez de descargarnos los binarios desde los repositorios, tendremos que hacerlo nosotros a partir del código fuente, siempre es recomendable descargar desde la web oficial: http://php.net/downloads.php

Descargado el código fuente, y habiendo requerido satisfacer el software necesario para su compilación, procederemos haciendo un "./configure", previamente habremos creado el directorio

/usr/local/php52/etc/

Ya que en nuestro caso, queremos trabajar con la obsoleta versión de php 5.2

Luego procederemos a ejecutar el "configure" con estos parámetros (uno detrás de otro)

--prefix=/usr/local/php52
--with-config-file-path=/usr/local/php52/etc/

Lo compilamos e instalamos normalmente copiando el fichero de configuración a su sitio:

make && make install
cp php.ini-dist /usr/local/php52/etc/php.ini
sed 's#display_errors = On#display_errors = Off#g' -i /usr/local/php52/etc/php.ini 

Suponiendo que tenemos instalado el apache con PHP 5.4:

# curl -I localhost/misitio.es/index.php
HTTP/1.1 200 OK
Date: Tue, 10 Apr 2012 09:50:50 GMT
Server: Apache
X-Powered-By: PHP/5.4.0
Content-Type: text/html

Para configurar el directorio /misitio.es con PHP 5.2 deberemos definir el directorio dónde tenemos instalado el binario php-cgi  --es decir estará donde lo instalamos /usr/local/php52/bin--,  así como directorio de CGIs (ScriptAlias) y a continuación definir el Handler para el tipo de ficheros acabados en .php (la sintaxis "Require" es de Apache 2.4):

Consecuentemente, debes modificar tu fichero de configuración Apache, el fichero generalmente se encuentra en algún directorio del directorio raíz /etc (depende de la distribución), en RedHat, CentOS y Fedora se encuentra en: /etc/httpd/conf/httpd.conf

<Directory /usr/local/php52/bin>
  Require all granted
</Directory>

ScriptAlias /php52-cgi /usr/local/php52/bin
<Directory /var/www/htdocs/misitio.es>
  Action php52-cgi /php52-cgi/php-cgi
  AddHandler php52-cgi .php
  <FilesMatch "\.php$">
    SetHandler php52-cgi
  </FilesMatch>
</Directory>

Una vez reiniciado el Apache podremos ver como servimos con PHP 5.2 en o para dicho directorio, mientras el resto sigue con la otra versión de PHP instalada:

curl -I localhost/misitio.es/index.php
HTTP/1.1 200 OK
Date: Tue, 10 Apr 2012 10:15:30 GMT
Server: Apache
X-Powered-By: PHP/5.2.17
Content-Type: text/html

En fin, creo que es lo suficientemente explicativo, si quieres más información en ExtreHost te podemos ayudar.