Running PHP 5.3 along with PHP 5.2.X

  • MySQL version must be upgraded to 5.1
  • PHP 5.2 version should be atleast 5.2.17

Build PHP: 
mkdir /usr/local/buildphp53
cd /usr/local/buildphp53
tar --strip-components=1 -zxvf php-5.3*

./configure --prefix=/usr/local/php53 --enable-cgi --enable-bcmath --enable-calendar --with-mysql=mysqlnd --with-mysqli=mysqlnd and --with-pdo-mysql=mysqlnd --enable (all the modules you need)

/usr/bin/make install

Extra configurations required

For Apache:

 vi /usr/local/apache/conf/includes/pre_virtualhost_global.conf

Add the following lines to the above file and save

Action application/x-httpd-php53 /cgi-sys/php53
 AddType application/x-httpd-php53 .php53

 To make cPanel skip the .htacces scan and remove the mime types, do the  following

/usr/local/cpanel/bin/apache_conf_distiller --update

touch /var/cpanel/easy_skip_update_php_mime_types 

vi /usr/local/cpanel/cgi-sys/php53
Add the following contents to the above file and save 

 exec /usr/local/php53/bin/php-cgi

Setting Permissions

chown root:wheel /usr/local/cpanel/cgi-sys/php53
chmod +x /usr/local/cpanel/cgi-sys/php53

 Soft-linking for command-line executions:

 ln -s /usr/local/php53/bin/php-cgi /usr/local/bin/php53

 Copying php.ini from build folder 

mv /usr/local/buildphp53/php.ini-production /usr/local/php53/lib/php.ini

You need to restart httpd after the configuration 

/etc/init.d/httpd restart

 Now everything is set. If you want to enable php5.3 for a particular account, create a .htaccess file as mentioned below. 

nano -w /home/$username/public_html/.htaccess

Add the following line to it

AddHandler application/x-httpd-php53 .php

 Correct the permissions;

chown $username:$username /home/$username/public_html/.htaccess

chmod 644 /home/$username/public_html/.htaccess

 Things you should remember while installing/enabling a new module to new custom build php 5.3

  •   Make sure that you do things related to php5.3 . For eg, if you have to do a “phpize”, you have to do it like this in command-line.

  • If you want to run ./configure, select the correct php-config path. See the example given below.
./configure  --with-php-config=/usr/local/php53/bin/php-config

 That's all.