Upgrading PHP 5.3 to 5.4 in VPS account
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.
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
'/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
Changed it to
And it's time to restart apache
sudo service apache2 restart
Restarted without a hitch.
Checked PHP version
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!