LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.

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.

Pin It

Comentarios  

0 # Marco Restom 08-10-2014 16:30
Hola! desde ya gracias por esta guia,
Tras hacer todo eso me sale este error al abrirlo con el navegador:

The requested URL /php52-cgi/php- cgi/CARPETA/ind ex.php was not found on this server.

Por qué puede ser?

Gracias.
Responder | Responder con una citación | Citar
0 # Javier Orovengua 08-10-2014 18:17
* Puede ser, que "carpeta", físicamente, no esté.
* Puede que "carpeta" se llame "Carpeta" o "cArpeta"....
* Puede que la dirección esté mal escrita.
* Puede que te falte "index.php"
* Puede (seguro) que tienes mal los permisos:

chown -Rfv apache:apache (o como sea en tu distro, mira /etc/passwd) carpeta/

Y sobre todo, mírate que tienes definida la carpeta correctamente en el fichero de apache.

Debería ser /var/www/htdocs /carpeta, pero en algunas distros es:

/var/www

y en otras, como CentOS, Fedora o RedHat:

/var/www/html

Prueba si tienes creado todo, y revisa la configuración.

Cuando lo resuelvas, dinos donde fallaste, la distro y versión, para futuras persones que tengan el mismo fallo.
Responder | Responder con una citación | Citar
+1 # Marco Restom 08-10-2014 19:34
Gracias por tu rápida respuesta!

Yo uso Linux Mint 16 escritorio MATE (64bits)

*La carpeta sí existe porque accedo a ella navegando a través del Chrome, desde localhost.

*Con la terminal le puse los permisos a "CARPETA":
chown -Rfv MIUSUARIO carpeta/
Pero sin éxito.


Hice una cosa más ahora, en el archivo apache2.conf, cambié esto:
ScriptAlias /php52-cgi /usr/local/php52/bin

por esto:

ScriptAlias /php52-cgi/ /usr/local/php52/bin

(Le agregué una barra al final de "/php52-cgi")

y ahora el navegador al menos lo parece encontrar pero dice que no tiene permisos suficientes (Forbidden, You don't have permission to access)


No sé como seguir!
Desde ya, gracias!
Responder | Responder con una citación | Citar
0 # Javier Orovengua 09-10-2014 11:11
Debes hacer:

su -
o
sudo su -

Dependiendo de tu distribución, para ser "root"

Acceder a donde coloques el sitio web:

Ten en cuenta que donde pone www debes de poner 3 w juntas.

El usuario www-data, creo que se utiliza en Debian, Ubuntu, Linux Mint. (y derivados)

El usuario apache, en RedHat, CentOS, Fedora (y derivados)

chown -Rfv www-data:www-data carpeta/

Para hacer que sea dueño el usuario de apache.

Y se hace falta:

chmod a+rx carpeta/

Para hacer que TODOS, puedan leer la carpeta.

Puedes hacer virgerías como:

chmod -Rfv a+r `find -type f`
chmod -Rfv a+rx `find -type d`

Para comprobar los cambios, escribes:

ls -l
o
ls -lshF

Pero eso ya te lo dejo a ti.

Para ver que usuario es, mira el fichero /etc/passwd

cat /etc/passwd
o
cat /etc/passwd | less
Responder | Responder con una citación | Citar
0 # Marco Restom 09-10-2014 13:02
Puse esos permisos tal y como lo describiste, pero sigue diciendo Forbidden.

¿Tendré que poner determinados permisos a /usr/local/php53?

Saludos y Gracias!
Responder | Responder con una citación | Citar
0 # Javier Orovengua 10-10-2014 08:53
No, si tienes claro los conceptos, revisa la configuración. Si no, mejor di donde tienes dudas para aclarartelas
Responder | Responder con una citación | Citar
0 # Marco Restom 10-10-2014 22:23
No pude conseguirlo de esta manera.

Finalmente seguí esta guia, que con poco de cinta adhesiva, lo pude llevar a cabo.

******blog.breidert.net/php-5-2-and-php-5-3-for-drupal-applications-under-apache-on-ubuntu-10-04-lts/

Gracias!
Responder | Responder con una citación | Citar
0 # Fernando Gómez 28-11-2014 03:08
Buenas, amigo en el paso donde dices: "Para configurar el directorio /misitio.es con PHP 5.2 deberemos definir el directorio dónde tenemos el binario php-cgi como directorio de CGIs (ScriptAlias) y a continuación definir el Handler para el tipo de ficheros acabados en .php (la sintaxi Require es de Apache 2.4):" especificamente que debo hacer? como defino el directorio y donce?
Gracias de antemano y espero tu respuesta
Responder | Responder con una citación | Citar
0 # Javier Orovengua 28-11-2014 11:08
Cito a Fernando Gómez:
Buenas, amigo en el paso donde dices: "Para configurar el directorio /misitio.es con PHP 5.2 deberemos definir el directorio dónde tenemos el binario php-cgi como directorio de CGIs (ScriptAlias) y a continuación definir el Handler para el tipo de ficheros acabados en .php (la sintaxi Require es de Apache 2.4):" especificamente que debo hacer? como defino el directorio y donce?
Gracias de antemano y espero tu respuesta


He cambiado un poco el texto, a fin de mejorar la lectura, míralo nuevamente.

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/php5 2/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):

Espero que ahora esté un poco más claro.
Responder | Responder con una citación | Citar
0 # Alfredo Morales 26-12-2014 19:10
Esta guía funciona con Ubuntu 14.04 para instalar php ¿4.4.9 sobre apache2?
Responder | Responder con una citación | Citar
0 # Yahder 26-12-2014 19:51
Cito a Alfredo Morales:
Esta guía funciona con Ubuntu 14.04 para instalar php ¿4.4.9 sobre apache2?

Claro, si te bajas los paquetes necesarios para compilar, como gcc, las fuentes del kernel de linux, etc... Ya te lo va pidiendo durante la compilación, los paquetes que faltan.
Responder | Responder con una citación | Citar
+1 # Alfredo Morales 06-01-2015 18:26
Ok, lo reviso y cualquier situación lo comento.

Gracias
Responder | Responder con una citación | Citar
+1 # Iñigo Ilundain 12-01-2017 14:16
Actualmente tengo la versión 5.4 y he instalado siguiendo tus instrucciones la 7.0.

Y me funciona correctamente para unas web tengo la 5.4 y para otra la 7.0

El problema es no soy capaz de instalar dos modulos el mysqli y el GD

Me podrías echar una mano

Gracias
Responder | Responder con una citación | Citar

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías