Con los problemas de compatibilidad de algunas aplicaciones que requieren PHP 5.3 (Moodle, Modx) y de otras que tienen problemas de incompatibilidad se hace necesario en algunos servidores disponer de multiples versiones de PHP5.
Actualmente EasyApache solo le permite compilar y tener disponible una sola version de PHP 5 simultaneamente asi que debemos compilar manualmente la requerida, en este caso vamos a instalar PHP 5.3.8.
1 - Instalamos las librerias requeridas:
yum install aspell-devel curl-devel cyrus-sasl-devel e2fsprogs-devel freetype-devel glibc-devel keyutils-libs-devel krb5-devel libgcc libidn-devel libjpeg-devel libpng-devel libselinux-devel libsepol-devel libstdc++-devel libX11-devel libXau-devel libXdmcp-devel libxml2-devel libXpm-devel mysql-devel net-snmp-devel openldap-devel openssl-devel tcp_wrappers zlib-devel icu icu-devel libicu-devel
2 - Descargamos el codigo fuente de PHP y creamos una carpeta para la instalacion.
mkdir /usr/local/php53
cd /usr/local/php53
wget http://us.php.net/get/php-5.3.8.tar.gz/from/us.php.net/mirror
tar -xzf php-5.3.8.tar.gz
cd php-5.3.8
De igual manera ahora esta disponible el PHP 5.3.13 que pueden descargar con "wget http://us.php.net/get/php-5.3.13.tar.gz/from/us.php.net/mirror"
3 - Procedemos a compilar PHP e instalarlo con soporte para cgi, deshabilitando la opcion apxs2 para que nos genere el php-cgi.
./configure --enable-fastcgi --disable-fileinfo --disable-pdo --enable-bcmath --enable-calendar --enable-ftp --enable-intl --enable-libxml --enable-magic-quotes --enable-mbstring --enable-soap --enable-sockets --enable-zip --prefix=/usr/local/php53 --with-curl=/opt/curlssl/ --with-gd --with-icu-dir=/usr --with-imap=/opt/php_with_imap_client/ --with-imap-ssl=/usr --with-jpeg-dir=/usr --with-kerberos --with-libdir=lib64 --with-libexpat-dir=/usr --with-libxml-dir=/opt/xml2 --with-libxml-dir=/opt/xml2/ --with-mysql --with-mysqli --with-openssl=/usr --with-openssl-dir=/usr --with-pcre-regex=/opt/pcre --with-pic --with-png-dir=/usr --with-xmlrpc --with-xpm-dir=/usr --with-zlib --with-zlib-dir=/usr
make
make test
make install
4 - Configuramos el Apache, con las directivas para PHP5.3 en un .conf personalizado.
Nota: Asumimos que PHP se ejecuta a traves de FastCGI, si no es asi deberian añadirse otro tipo de reglas.
#/* Para ejecutar archivos con extension .php53 */
mkdir /usr/local/apache/conf/userdata/
echo "AddHandler fcgid-script .php4" >> /usr/local/apache/conf/userdata/php53.conf
echo "FCGIWrapper /usr/local/php53/bin/php-cgi .php53" >> /usr/local/apache/conf/userdata/php53.conf#Creamos un Wrapper general para esta version de PHP y asignamos los permisos requeridos para Suexec
echo '#!/bin/sh' >> /usr/local/cpanel/cgi-sys/php53
echo "exec /usr/local/php53/bin/php-cgi" >> /usr/local/cpanel/cgi-sys/php53
chmod 755 /usr/local/cpanel/cgi-sys/php53
chown root:wheel /usr/local/cpanel/cgi-sys/php53
5 - Configuramos el .htaccess en el usuario o carpeta que deseemos que ejecute la version personalizada de PHP que ya compilamos mediante el Wrapper que acabamos de crear para la extension .php:
echo "FcgidWrapper /usr/local/cpanel/cgi-sys/php53 .php" >> /home/$usuario/public_html/.htaccess
6 - Realize una limpieza del archivo httpd.conf y copie el archivo optimizado php.ini de la versión previa si lo requiere.
/usr/local/cpanel/bin/build_apache_conf
cp /usr/local/php52/lib/php.ini /usr/local/php53/lib/php.ini