How to install php 5.2.17 on CentOS 6.9

Long time no see 🙂 . Being busy with a few machines that got EOL phase. Yes, many legacy app require PHP 5.2.17 but developer nor the company refuse to upgrade. Now, the machine also reach end of life (CentOS 5.11) . The only option available is upgrade the OS with CentOS 6 or CentOS 7.

I use VPS to simulate the process and write it here for documentation purpose, lets get start!

Upgrade to latest CentOS 6

yum update

Install required files

yum install gcc make httpd-devel libxml2-devel bzip2-devel openssl-devel curl-devel gd-devel libc-client-devel libmcrypt-devel libmhash-devel mysql55-devel aspell-devel libxslt-devel nano wget

download php 5.2

wget http://museum.php.net/php5/php-5.2.17.tar.gz 
tar -zxvf php-5.2.17.tar.gz
cd php-5.2.17

Configure

./configure --prefix=/usr/local/php52 --with-apxs2=/usr/sbin/apxs --with-config-file-path=/usr/local/lib/php52/ --disable-posix --enable-bcmath --enable-calendar --enable-exif --enable-fastcgi --enable-ftp --enable-gd-native-ttf --enable-libxml --enable-magic-quotes --enable-mbstring --enable-pdo --enable-soap --enable-sockets --enable-wddx --enable-zip --with-bz2 --with-curl --with-curlwrappers --with-freetype-dir --with-gd --with-gettext --with-jpeg-dir --with-kerberos --with-libxml-dir --with-libxml-dir --with-mcrypt --with-mhash --with-mime-magic --with-mysql --with-mysqli --with-openssl --with-openssl-dir --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pic --with-png-dir --with-pspell --with-sqlite --with-ttf --with-xmlrpc --with-xpm-dir --with-xsl --with-zlib --with-zlib-dir

Collection off problems occured during install

problem 1 :

configure: error: libjpeg.(a|so) not found.

solution

ln -s /usr/lib64/libjpeg.so /usr/lib/libjpeg.so

problem 2 :

configure: error: libXpm.(a|so) not found.

solution

ln -s /usr/lib64/libXpm.so /usr/lib/libXpm.so

problem 3 :

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

solution

yum install epel-release
yum install libmcrypt-devel

problem 4 :

configure: error: Please reinstall libmhash – I cannot find mhash.h

solution

yum install libmhash-devel

problem 5 :

configure: error: Cannot find MySQL header files under yes.

solution

yum install mysql-server mysql-devel
ln -s /usr/lib64/mysql /usr/lib/mysql

problem 6 :

configure: error: libpng.(a|so) not found

solution

ln -s /usr/lib64/libpng.so /usr/lib/libpng.so

Install php 5.2.17

make && make install

….
………
Installing PEAR environment: /usr/local/php52/lib/php/
[PEAR] Archive_Tar – installed: 1.3.7
[PEAR] Console_Getopt – installed: 1.2.3
[PEAR] Structures_Graph- installed: 1.0.3
[PEAR] XML_Util – installed: 1.2.1
[PEAR] PEAR – installed: 1.9.1
Wrote PEAR system config file at: /usr/local/php52/etc/pear.conf
You may want to add: /usr/local/php52/lib/php to your php.ini include_path
Installing PDO headers: /usr/local/php52/include/php/ext/pdo/

Edit httpd.conf

Make sure you have these lines in httpd.conf

nano /etc/httpd/conf/httpd.conf

LoadModule php5_module /usr/lib64/httpd/modules/libphp5.so
AddType application/x-httpd-php .php .phtml

Start Apache and mysql service

service httpd start
service mysqld start

Make permanent service

chkconfig --level 35 httpd on
chkconfig --level 345 mysqld on

Firewall Setting

iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
service iptables save
service iptables restart

Done.