Upgrading PHP 5.3 to 5.4 in VPS account

Upgrading PHP 5.3 to 5.4 in VPS account
Oct 15, 2014

As with most web hosts, the apache, php & mysql versions are woefully stuck in older versions. While PHP 5.3 itself doesn't sound like too old, it's not enough for many latest php packages. Serveral new features were added in PHP 5.4 and the popular PHP packages are keen to take advantage of it. As PHP 5.5 with even more features is now getting stable, PHP 5.4 doesn't sound like too latest.

Why not upgrade to PHP 5.5 then?

But installing PHP 5.5 in better done with Apache 2.4. That is a bigger obstacle as Apache 2.4 have completely different structure and codes. Almost all standard linux web servers use Apache 2.2. It will break web server control panels & also existing website setups. For now, it's better to wait for Webhosts to provide servers running CentOS7 or Ubuntu 14.04 LTS. Both will have Apache 2.4 & PHP 5.5 by default.

What php packages will need PHP 5.4?

Among the popular packages has minimum requirement as PHP 5.4. The widely popular Wordpress already 'recommends' PHP 5.4 while keeping PHP 5.3 as minimum requirement. Latest versions of Zend Framework 2, Symphony 2 all have PHP 5.4 as recommended version. Zend Framework 2 (ZF2) has PHP 5.3.23 as minimum version whereas web servers usually have PHP 5.3.6 or PHP 5.3.10 so you need a PHP upgrade anyway.

Why PHP 5.4 is better than 5.3?

This slideshow says it better.

The why and how of moving to php 5.4/5.5 from Wim Godden

Among other things it also has a built-in webserver! Great for testing & development.

The upgrade sequence:

As said earlier, do not go for PHP 5.5 in current crop of VPS accounts. I actually tried doing it and with control panel & apache settings were broken I had to re-install VPS bas to it's original setting.

For Ubuntu 12.04 LTS based VPS account, I followed the advice from AskUbuntu ( http://askubuntu.com/questions/109404/how-do-i-install-latest-php-in-sup... ) but not using the one for PHP 5.5.


sudo apt-get install python-software-properties

as add-apt-repository was not provided in VPS

sudo add-apt-repository ppa:ondrej/php5-oldstable

to install only the latest PHP 5.4

sudo apt-get update

get the new repository loaded

Then checked the available version of PHP using this

apt-cache policy php5

it will show the version that will be installed when we ran 'install php5' next time. I wanted to check this as ondrej's responsitory are very frequently updated & wanted to ensure it will not auto upgrade Apache.

Finally, the actual install

sudo apt-get install php5

PHP install is over. Not major issue, but it showed a notice that it cannot load 'ioncube-loader' as it was 5.3. Found that Ubuntu 12.04 loads this 'ioncube_loader_lin_5.3.so' from '/usr/lib/php5/20090626+lfs/' folder. Luckily that folder also has another .so file for 5.4. But php still tries to load 5.3 version & fails.

Found that it was due to 00-ioncube-loader-5.3.ini file at '/etc/php5/conf.d' folder. Opened it, there was only one line (apart from comments) that said zend_extension=/usr/lib/php5/20090626+lfs/ioncube_loader_lin_5.3.so
Changed it to zend_extension=/usr/lib/php5/20090626+lfs/ioncube_loader_lin_5.4.so

And it's time to restart apache

sudo service apache2 restart

Restarted without a hitch.

Checked PHP version

php -v

it shows 5.4.23 (latest version of 5.4 at this time, ondrej adds latest version within days of it being released). And also showed that it loaded ioncub_loader 5.4 now.

Time for now to install website!