How to build missing PHP 5.3 extensions on CentOS 5.6

You can compile and install manually only the mcrypt extension. This is what I did in my CentOS 5.6 VPS:

First install some required packages:

yum install php53-devel libmcrypt-devel gcc gcc-c++

Then download the php 5.3.6 source code from php.net and unpack it:

wget http://mx2.php.net/get/php-5.3.6.tar.bz2/from/us3.php.net/mirror
tar xvjf php-5.3.6.tar.bz2

(Please note that the download link will change with every subsequent PHP release.)

Go to the directory with the mcrypt extension source code and compile:

cd php-5.3.6/ext/mcrypt/
phpize
aclocal
./configure
make

Then install:

make install

Create the configuration file for PHP /etc/php.d/mcrypt.ini containing:

extension=mcrypt.so

Restart apache:

/etc/init.d/httpd restart

Create a file with phpinfo just to check if the extension was loaded:

<?php
phpinfo();
?>

Regarding the php-pear package:

This problem should be solved with RHEL in order to be solved in CentOS, here is the bug report about that problem: PHP53 Lacks php53-pear

Install the older php-pear via yum install php-pear and than run the following commands:

pear upgrade --force Console_Getopt
pear upgrade --force pear
pear upgrade-all

(It seems that these commands will solve the issue, it worked for labradort from the linked bug report and it worked for me)


You can also get php53-mcrypt and a few other missing packages by adding the EPEL repository from http://fedoraproject.org/wiki/EPEL to your system.