Diferentes versiones de PHP según VirtualHost o directorio
Enviado por miguelcarmona :: 18 de abril de 2012
Con los cambios de las versiones de PHP 5.3 y 5.4 puede resultar interesante mantener ciertas partes en una versión de PHP anterior y seguir otras con la última estable. Vamos a ver como instalar varios PHP en un mismo Apache.
La instalación del PHP, en este caso 5.2 deberá ser en modo CGI, simplemente deberemos preocuparnos de instalarlo con un prefix diferente y con el fichero de configuración en otro sitio:
--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/systemadmin.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 /systemadmin.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):
<Directory /usr/local/php52/bin> Require all granted </Directory> ScriptAlias /php52-cgi /usr/local/php52/bin <Directory /var/www/htdocs/systemadmin.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 dicho directorio mientras el resto siguen con la otra versión de PHP instalada:
curl -I localhost/systemadmin.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 |
vía: http://systemadmin.es/2012/04/diferentes-versiones-de-php-segun-virtualhost-o-directorio