How to install/upgrade PHP 5.3 for CentOS 5.x


The following article will guide you through installing PHP 5.3 on your CentOS 5.x-based system using the third party webtatic and EPEL package repositories. These package repositories are not officially supported by CentOS, but they provide much more current versions of popular applications like PHP. This guide does not attempt to install the official php53 package set as the available modules in that set are quite limited.

Install the extra repositories

The first step requires downloading and installing some RPM files that contain the additional repository definitions, which we'll do with the rpm command:

sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
sudo rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm

Once installed you should see some additional repository definitions under the /etc/yum.repos.d directory.

$ ls -1 /etc/yum.repos.d/epel* /etc/yum.repos.d/webtatic.repo
/etc/yum.repos.d/epel.repo
/etc/yum.repos.d/epel-testing.repo
/etc/yum.repos.d/webtatic.repo

Enable the webtatic repository

The webtatic repository provides a variety of up-to-date packages that are useful or are a requirement for many popular web-based services.  That means it generally is not a bad idea to enable the webtatic repository by default.

First, open the /etc/yum.repos.d/webtatic.repo repository file using a text editor of your choice,

sudo vim /etc/yum.repos.d/webtatic.repo

Edit the [webtatic] section of the file so that the enabled option is set to 1.  This will enable the remi repository.

[webtatic]
name=Webtatic Repository $releasever - $basearch
#baseurl=http://repo.webtatic.com/yum/centos/5/$basearch/
mirrorlist=http://repo.webtatic.com/yum/centos/5/$basearch/mirrorlist
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-webtatic-andy

Installing the PHP 5.3 packages

This section will aim to install PHP 5.3 and any relevant additional modules that may be required. If you are upgrading from an older PHP version to PHP 5.3 please skip to the next section.

The following is an example of a single-shot command of the installation of PHP 5.3 and some common modules:

$ sudo yum install php php-cli php-gd php-mysql php-mbstring

The following is a sample trace output (make note of the package version and the repository):

...
Dependencies Resolved

================================================================================
 Package                 Arch       Version                  Repository    Size
================================================================================
Installing:
 php                     x86_64     5.3.20-1.w5              webtatic     1.4 M
 php-cli                 x86_64     5.3.20-1.w5              webtatic     2.6 M
 php-gd                  x86_64     5.3.20-1.w5              webtatic     108 k
 php-mbstring            x86_64     5.3.20-1.w5              webtatic     1.2 M
 php-mysql               x86_64     5.3.20-1.w5              webtatic      91 k
Installing for dependencies:
 apr                     x86_64     1.3.12-1.w5              webtatic     102 k
 apr-util                x86_64     1.3.12-1.w5              webtatic      84 k
 apr-util-ldap           x86_64     1.3.12-1.w5              webtatic      15 k
...
Transaction Summary
================================================================================
Install      26 Package(s)
Upgrade       0 Package(s)
...
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID cf4c4ff9
webtatic/gpgkey                                          | 1.6 kB     00:00     
Importing GPG key 0xCF4C4FF9 "Andy Thompson <xx@xx.com>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-webtatic-andy
Is this ok [y/N]: y
...

To search for available PHP-related packages we can run the following command:

yum search php

Typically the names of php modules begin with php-. Be careful about any packages that start with php53- as these will conflict with the webtatic versions.

Once you've installed PHP and any required supporting modules, skip to the "Last Steps" section below.

Upgrading to PHP 5.3 packages

If you already have PHP installed the upgrade steps are slightly different.

Warning: Before performing this upgrade please take the time to do a full backup of your system. The upgrade should generally be straightforward, but this will depend on the existing package state of your system.

To upgrade php, run:

$ rpm -q php
php-5.1.6-27.el5_5.3
$ sudo yum upgrade php
...
Dependencies Resolved

===================================================================================
 Package                  Arch        Version                      Repository
                                                                              Size
===================================================================================
Updating:
 php                     x86_64     5.3.20-1.w5              webtatic     1.4 M
Installing for dependencies:
...

Updating for dependencies:
 php-cli                 x86_64     5.3.20-1.w5              webtatic     2.6 M
 php-gd                  x86_64     5.3.20-1.w5              webtatic     108 k
 php-mbstring            x86_64     5.3.20-1.w5              webtatic     1.2 M
 php-mysql               x86_64     5.3.20-1.w5              webtatic      91 k

Transaction Summary
===================================================================================
...

$ rpm -q php
php-5.3.20-1.w5

The above commands will check the installed PHP version then update the existing php package and any associated packages to the 5.3 version in the webtatic and epel repositories.

Last steps

At this point you should have PHP 5.3 installed using the webtatic package repository. The last thing to do is to restart apache if it is currently running so that the new PHP version is loaded.

$ sudo /etc/init.d/httpd restart

A quick confirmation from the terminal should let you check the PHP version:

$ php -v
PHP 5.3.20 (cli) (built: Dec 20 2012 18:11:02) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies


Was this content helpful?




© 2014 Rackspace US, Inc.

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License


See license specifics and DISCLAIMER