Ola, somos Arume

Desenvolvemos páxinas web, aplicacións para móbiles, capas de realidade aumentada e aplicacións para Facebook. Apaixónanos a informática e somos uns perfeccionistas incurables; por eso nos nosos proxectos utilizamos estándares.

tel. 625 519 694

Mendaña de Neyra, 34, 3º B, 15008, A Coruña

Autenticarse

Rexistrarse. Esqueceches o teu contrasinal?

Etiquetas

Saltar as etiquetas

Subscríbete ás RSS

Estás en:

  • Inicio >
  • Blog >
  • Instalar varias versións de PHP nun servidor con Linux (Debian)

Instalar varias versións de PHP nun servidor con Linux (Debian)

19 Nov 2010 por Jose

Comentarios: 4

Apache + PHP + ¿PHP?

Recentemente instalei un novo servidor en un equipo con Debian squeeze. O servidor web (Apache 2), PHP e MySQL instaleinos de forma automática con apt.

A versión de PHP instalada foi a 5.3.2 e dado que viña traballando nunha 5.2.14 empecei a detectar algúns erros, que puiden solucionar facilmente. O problema é que sigo necesitando a versión antiga. Entóns éntrame a dúbida: ¿podo ter dúas versións distintas de PHP nun mesmo servidor?

A resposta é si, e dunha forma sinxela.

Primeiro debemos instalar uns paquetes requeridos, a maioría xa instalados xeralmente:

apt-get install flex apache2-threaded-dev libxml2-dev apache2 apache2-mpm-prefork apache2-threaded-dev apache2-utils apache2.2-bin apache2.2-common

Se xa temos unha versión de PHP no noso servidor, para este caso, desactivarémola, descargarémola e volveremos a instalala dende cero, para o cal executamos o comando:

a2dismod php5

Ou, en caso de que fose PHP4 a versión instalada:

a2dismod php4

Esto realizarémolo cada vez que queiramos unha nova versión de PHP.

Despois deberemos descargar as versións que desexemos instalar. Podemos facelo dende php.net. Unha vez descargadas deberemos desempaquetalas, compilalas e instalalas.

Supoñamos que o directorio onde descargamos e desempaquetamos as versións de PHP está na ruta /home/sources/php-5.3.2: situarémonos nela e entón compilaremos cada versión:

./configure --prefix=/usr/local/php/php_5.3.2 --with-apxs2=/usr/bin/apxs2 --with-mysql
make 
make install

Esta é unha compilación básica de PHP, cada usuario deberá compilar según as súas propias necesidades.

A continuación deberemos crear un arquivo php.ini en /usr/local/php/php_5.3.2/lib/, podemos copiar o php.ini-recommended cambiando o nome.

Movemos o arquivo xerado na compilación /usr/lib/apache2/modules/libphp5.so a /usr/local/php/php_5.3.2/modules/.

Creamos agora o ficheiro de configuración /usr/local/php/php5.3.2.conf co contido:

LoadModule php5_module /usr/local/php/php_5.3.2/modules/libphp5.so

Esto repetímolo tantas veces como versións queiramos instalar.

Incluímos ó final do arquivo de configuración /etc/apache2/httpd.conf a seguinte liña:

Include /etc/apache2/php.conf

Finalmente xeramos un script que nos permita cambiar de versión cómodamente:

/bin/php.sh

#!/bin/bash
opcion=0
cat << CABECERAMENU
Opcions do menu
1 => PHP 5.2.14
2 => PHP 5.3.2
CABECERAMENU
echo -n "Ingrese a sua eleccion: "
read opcion
echo
case $opcion in
"1")
rm /etc/apache2/php.conf
ln -s /usr/local/php/php5.2.14.conf /etc/apache2/php.conf
/etc/init.d/apache2 restart
;;
"2")
rm /etc/apache2/php.conf
ln -s /usr/local/php/php5.3.2.conf /etc/apache2/php.conf
/etc/init.d/apache2 restart
;;
*)
echo "Opcion non valida"
;;
esac

Con esto teremos as distintas versións de PHP, podendo decidir cal queremos usar executando un simple script.

Podemos ver a fonte da información en TechnoBlog.

Comentarios

4 comentarios. Comentar.

1. Anónimo o 10 Nov 2011 ás 20:56:26

Hola está muy buena la información, a mi me ayudo puesto que actualice el php a 5.3 y tenia decenas de páginas en joomla 1.0 y 1.5 que no están soportadas por esa versión.

Pero además se puede cargar el modulo manualmente en los virtualhost's para tener ambas versiones funcionando al mismo tiempo.

Saludos.

2. Carlos o 23 Feb 2012 ás 15:40:40

hola, pueden explicar como configurar el virtualhost para tener varias versiones de php funcionando al mismo tiempo

3. Jairnet o 25 Ago 2016 ás 09:27:16

Excelente, la mayoria de los post explican para tener simultaneamente (se les agradece) las versiones. pero para efecto de prueba es más simple este procedimiento si solo tenemos un proyecto. Gracias

4. William Finol o 29 Mai 2017 ás 19:36:26

Me da el siguiente error cuando compilo

Makefile:442: recipe for target 'ext/dom/documenttype.lo' failed

que debo hacer?

Comentar

Comentar de forma anónima

Podes comentar poñendo calquera nome ou alcume, exceptuando os nomes de usuarios rexistrados. Máximo de 50 caracteres.

Comentar como usuario rexistrado

Rexistrarse. Esqueceches o teu contrasinal?