PHP 5.2 has become outdated and 5.3 is officially mentioned as “End of Life” status. But many applications and custom scripts still work on these two platforms. So here is the guide for people who wish to use PHP 5.2 or 5.3 along with PHP 5.4 or 5.5 on a cPanel server and make use of both versions at the same time.
Let’s assume the latest version of PHP 5.4 is installed on your server by default. But for some reason, you need to install an older version; follow the below steps to install an old version of PHP.
- Download and untar the older version of PHP that you wish to install. Here we assume that you are willing to install 5.3:
# mkdir /usr/local/buildphp53 # cd /usr/local/buildphp53 # wget http://museum.php.net/php5/php-5.3.9.tar.gz # tar --strip-components=1 -zxvf php-5.3.*
- Configure and install PHP
#./configure --prefix=/usr/local/php53 --enable-cgi --enable-bcmath --enable-calendar --with-mysql=/usr/bin -with-libdir=lib64 --with-gd --enable-mbstring (you can add more modules per your wish) # make # make install
- Now add the PHP 5.3 handlers to Apache
# pico /usr/local/apache/conf/includes/pre_virtualhost_global.conf
Add the following:
Action application/x-httpd-php53 /cgi-sys/php53 AddType application/x-httpd-php53 .php53
- Use Apache distiller for the above changes to take effect and make cPanel skip .htaccess scan and remove the mime types:
# /usr/local/cpanel/bin/apache_conf_distiller --update # touch /var/cpanel/easy_skip_update_php_mime_types
- Now create a file under the cgi-sys directory of cPanel so it detects PHP 5.3
# pico /usr/local/cpanel/cgi-sys/php53
And add the following to it
#!/bin/sh exec /usr/local/php53/bin/php-cgi
- Set the proper ownership/permission
# chown root:wheel /usr/local/cpanel/cgi-sys/php53 # chmod +x /usr/local/cpanel/cgi-sys/php53
- Now copy the PHP configuration from the build directory of PHP 5.3
# cp /usr/local/buildphp53/php.ini-production/usr/local/php53/lib/php.ini
- Create a symlink for the PHP 5.3 executable to use from the command line:
# ln -s /usr/local/php52/bin/php-cgi /usr/local/bin/php53
- Once done, restart Apache for changes to take effect:
# service httpd restart
- Now, PHP 5.4 will work by default and to make PHP 5.3 work for a specific account OR a folder, create a .htaccess file inside it and add the PHP 5.3 Handler
AddHandler application/x-httpd-php53.php
That’s it. Create a phpinfo page inside the folder and browse it to see if PHP 5.3 is in effect for that folder.
Things to note is: If you want to install OR compile a module with PHP 5.3, use the appropriate php-config and phpize file, i.e.
phpize: /usr/local/php53/bin/phpize php-config: ./configure --with-php-config=/usr/local/php53/bin/php-config