LinuxParty
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.
-
PHP
- Eliminar el mensaje «Hemos detectado que su servidor está usando PHP el cual está obsoleto» en Joomla
- FacturaScripts 2015.046 ya disponible
- FacturaScripts 2018.03 ya disponible (y presencia en OpenExpo)
- Los puntos de referencia de rendimiento de PHP 7.3 se ven buenos, días antes de su lanzamiento
- 12 Usos útil de PHP desde la línea de comandos que todo usuario de Linux debería conocer
- Como migrar de Blogger a WordPress
- Cómo instalar Composer, el gestor de paquetes de PHP globalmente
- Instalar una versión vieja (downgrade) de PHP en CentOS
- Migrar de PHPNuke a Joomla 2.5.X, paso a paso.
- Pasos para actualizar Joomla 2.5 a Joomla 3.3
- Cómo tener varias versiones de PHP en un mismo servidor
- Generar documentos Word con PHP a través de PHPDocX, biblioteca PHP para dicho fin.
- 10 formas de hacer PHP más seguro.
- Introducción a PHPUnit, la herramienta para desglosar, probar y documentar el código
- VideoTutoriales: Curso de MongoDB con PHP en Español
Comentarios
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.
* 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.
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!
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
¿Tendré que poner determinados permisos a /usr/local/php53?
Saludos y Gracias!
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!
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.
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.
Gracias
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