Centos 6 has PHP 5.3.3. I need PHP 5.3.10. Is there a way?

My preferred CMS, ExpressionEngine, now has a minimum requirement of PHP 5.3.10.


Because I’m running Centos 6, I’m stuck on PHP 5.3.3.

What can I do?


You may want to take a peek at the following doc, which explains how to install an additional PHP version:


Yep, worked perfectly. Thanks :slight_smile:

Hi Andreycheck

Don’t suppose you can update that guide to tackle this problem:

“No package centos-release-SCL available”


Out of my 12 servers, 8 are reporting this. Seems they are all my 32bit servers (which were changed to 64bit kernels) and the other 4 that show the package as available are 64bit servers.

Edit: Oh, I just spotted this “Also, the repository providing these packages currently only provides 64 bit packages” - not even the Centos page mentions this http://wiki.centos.org/AdditionalResources/Repositories/SCL

Do you know how to install PHP 5.4 on i386? The kernels are 64bit, but software is still 32bit


I have now created a new 64bit machine, copied the sites over, so I could follow the above guide, but it would be good to have some instructions for 32bit machines… I have a lot of other 32bits, and they all have Expression Engine sites on, of which their latest 2.9 release only supports PHP 5.3.10+.

It would be safer to move your EE sites to the new 64bit server. It’s so simple with Virtualmin’s ‘Transfer Virtual Server’ option. Takes a few seconds to transfer a site and then update DNS.

I don’t recommend trying to upgrade PHP on your 32bit Centos server. You’d need to use a third-party repo and something would inevitably break. Not worth the hassle.

Mind you, I don’t know what kind of support agreement you have with your EE clients, but maybe you’re not forced to upgrade EE for them. If your Clients want the latest and greatest version of EE which forces you to switch servers then just pass the cost on to them.

Its not about upgrading existing ones, but for future sites. Every time we develop a new site we upgrade that one. And we have servers to put sites on, I didn’t want to get a new server for a while (not until our server limits we have are reached, one of them is 100 sites per server, theres about 40 on there now so we have a way to go before we decide to get a new server).

So moving all 40 sites to a 64bit server so we can keep this one server and add new EE sites to it would be a bit of work. We use Linode, and they allow swapping servers IP, so we can backup all sites, transfer to a new server, then just switch IP and good to go, but theres always that middle period of the old server still live after taking the backup and content being changed, orders placed etc. Its not ideal to have to do this to get PHP 5.3.10+.

Anyone know anything about CentOS, like when they expect to release a new version with PHP 5.4?

A real pain in the arse this, releasing upgrades that require newer PHP but then servers not supporting the newer PHP.


Whenever you install a particular distro/version – the PHP version you get with that is what you’ll have for the life of that distro/version.

Since web apps move faster than distro packages do, Virtualmin released the multiple PHP support linked to above… but that comes with the downside that the CentOS SCL repository only provides 64bit packages.

You could build your own 32 bit RPM packages, if you wanted, using the source of the ones provided in the SCL repository. Virtualmin would support that just fine.

That is indeed the problem though, with the fast moving web apps today… they outpace the packages provided with your distro, and it can often be necessary to upgrade the distro version well before it reaches it’s EOL in order to allow web apps to continue working properly.


Thanks for the explanation… does that mean CentOS 7 will have the new PHP, and so we should install CentOS 7 for new servers? Or stick with CentOS 6 on 64bit and install newer PHP using the SCL?

Can Centos 6 be upgraded to Centos 7? And therefore have the latest PHP that way? (guess this is not ready yet anyway from this post https://www.virtualmin.com/node/33637)

Lastly, should we consider using a different distro for web hosting servers, one which updates more often and includes latest PHP.

Although I would not want to do a PHP upgrade system wide in case of old sites breaking! Having a choice of PHP like with the SCL approach seems to be better to support old and new websites.


CentOS 7 comes with PHP 5.4.16 but is only available on x86_64 . There is an i386 version in the works but does not seem to be high up on their priorities.

The upgrade tool CentOS 6.5 > CentOS 7 is in ‘final’ beta and soon to be released (possible as CentOS 7.1xxx). In this case soon means within a month.

It is also worth noting that Virtualmin does NOT currently support CentOS 7 although a beta is ‘close’.

I have been reading this thread since it begun and have been resisting the urge to suggest you simply use REMI Repo. Most professional sensible people will advise against using repos but sometimes they are a great solution, especially REMI who is a core RH contributor.

Here are two links:
As the first links states the official repo only provides 64 bit version but remi has the 32 available.

Maybe it would be worth testing this out on something that does not matter.


Yeah, we’re hoping to release a beta for CentOS 7 support this week sometime.

As for your questions –

Thanks for the explanation… does that mean CentOS 7 will have the new PHP, and so we should install CentOS 7 for new servers? Or stick with CentOS 6 on 64bit and install newer PHP using the SCL?

Yes, as lostandfound mentioned, CentOS 7 will be coming with a newer PHP version. It also comes with newer everything else too.

As far as which is preferable for new servers though, that’s a decision you’d need to make. You could use 64 bit CentOS 6 with the SCL repo, or you could use 64 bit CentOS 7.

Lastly, should we consider using a different distro for web hosting servers, one which updates more often and includes latest PHP.

That’s something to consider as well.

Some folks choose to use Ubuntu LTS, since new distro versions come out more frequently, and the packages in it tend to be pretty new. A new Ubuntu LTS release comes out every 2 years, and the supported lifetime of each is 5 years.

Now, you’ll have the same problem here – once you install it, that’s the PHP version you’ll get as long as your using that distro version.

What’s different is that they use more recent packages when the distro is released. CentOS 7, released in July, comes with PHP 5.4.16. But Ubuntu 14.04, released in April, comes with PHP 5.5.9.

With that in mind, CentOS will feel “older” before Ubuntu will, even though it’s technically a newer distro. However, that’s also the point of the SCL repo, to provide newer software for you to use to help extend the life of that distribution.

Ubuntu and Debian each currently have a way to upgrade from one version to the next. You can see an example of the instructions we provide for upgrading from Ubuntu 12.04 to Ubuntu 14.04 here:


In the past, CentOS hadn’t provided a similar upgrade method. The only way to upgrade had been to migrate to a new server. As lostandfound mentioned, that’s changing as of CentOS 7, though they haven’t released the upgrade tool yet so we aren’t sure what to expect.

Choosing a distribution can be difficult, as none of them are a bad choice. They all come with benefits and drawbacks, but they’re good, solid distributions.

CentOS is the most used by Virtualmin users. Ubuntu has the second most users.

Joe and Jamie both prefer CentOS. I prefer Ubuntu :slight_smile:


Thanks a lot for these detailed replies, I understand it all a lot more now.

@lostandfound - I was reluctant to use REMI or other third party because reading about it online someone was in the exact same position as me and although they got REMI working on a development server they couldn’t do it on their live one, following the same process on their dev. They had to restore the whole server from backups and eventually gave up. I cant take such a risk on my live server, I think I would prefer to create a new 64bit and move all sites.

So based on all the above, I think the best best is create a new 64bit server with Centos 6.5 (if I do it within the next few months) and then use SCL to install PHP 5.4. At least I have a choice then, if I have any older sites that wont work on PHP 5.4.

Thanks a lot

Some quick points, based on the above.

  1. I used Centos for web and email hosting for several years. It’s the OS that I learned with, so I was reluctant to try any others such as Ubuntu. Recently I needed to upgrade to the latest version of Dovecot which wasn’t available in Centos 6.5, so I had no choice but to install Ubuntu. It turns out that I needn’t have worried because there really isn’t any difference between the two. I’m very happy with Ubuntu 14.04 and probably won’t bother returning to Centos 7 when Virtulmin supports it. You might want to spin up a small Linode and give it a go?

  2. I used to lease dedicated servers, but I now also use Linode. The trouble with dedicated is that you have to buy into them with a long-term view. There is often a minimum contract, and you have to pay full price for resources (large disks etc) that won’t even be used to capacity for many months, if ever. But as is mentioned above, often the CMS technology outpaces the server technology - so in this case EE 2.9 needs a more recent version of PHP that isn’t available on your outdated server that’s only half full.

So, my approach now is to start with a small Linode, around 2GB. I install the latest version of Centos or Ubuntu, and configure it exactly as I want it. I keep a .txt document with a list of install instructions to remind me exactly how I configured the server, including notes to myself, commands I have run, and which pages in Virtualmin I need to save my settings. Configuring a new server used to take me several days (mostly Googling stuff and learning as I went) but now I can spin up a Linode and have it production-ready for hosting exactly as I want within just a few minutes! So, I can start small, adding new sites gradually, and resize the Linode if I start needing more space. And if I find myself in a situation like yours where the OS has fallen behind and I need a newer OS - I simply spin up a new Linode with the latest OS and have it ready within a few minutes. This now becomes my new server for new sites. So rather than have one main server with hundreds of sites, instead I have several smaller servers with a couple of dozen sites each. This approach is cheaper and much more flexible. Never any need to try and upgrade an existing server (and risk breaking sites). Instead, just start fresh with a new $20 disposable Linode with the latest OS and don’t look back :slight_smile:

@lewisjenkins - I’m similar to you with Linode and spinning up new ones… I have a set of instructions to follow to make the exact setup I need, takes a couple of hours mind. I’m learning Puppet but a lot of my setup is a bit advanced for me and puppet at the moment, so I do it manually. Most of the time I actually restore another server backup to a new server, then change config for backup, IP, few other things. Thats not too bad.

I just dont want to have too many Linodes unnecessarily, it all adds up! I have 13 Linodes now, so just try to keep them down and use the resources in the ones I have.

I reckon the best bet is set a new server up, use Virtualmin to move all sites over, then switch IPs in Linode, so no need to mess with DNS and do one site at a time. Might give that a go.

P.S. Where you based, name like Lewis Jenkins you cant be far from me in Caerphilly :slight_smile: