Greetings, dear visitor. IT blog is here

How to install PHP 5.2.17 on Ubuntu Server (example is on Amazon EC2) servers

Sometimes, there is a need, when your application require old software to be used. Into such situation I have been dropped with some project of our client. Because of old version of Zend Optimizer (the PHP encryption software), there was a need for PHP 5.2.x with some specific extensions. The reason to select v5.2.17 is obvious - it is most secured version in the 5.2.x list.

The problem

In all official repositories of Ubuntu, there is no 5.2.17 version of PHP, and all of them propose you to upgrade everything to 5.3.x (at this time - the latest stable version).

Possible solutions

After searching the web, I have found several solutions on how to achieve the goal:

  • download PHP 5.2.17 in sources from here, and compile it from scratch, like described here. This one requires a strong knowledge of php compilation flags + PHP configuration as fast-cgi module for apache2, otherwise - a lot of time;
  • find some EC2 snapshot with old Ubuntu and PHP 5.2.x preinstalled. Someone, will configure it for their needs;
  • find some custom repositories with PHP v5.2.17;

The last solution was selected.

Prerequisites

This example we will make on Amazon AWS EC2 instance. I have tried to make it with latest LTS version of Ubuntu Server (at this moment it is 12.04.1) on EC2, but there were problematic dependencies, as custom php repository compatible only with Ubuntu Lucid.

That's why, I've taken the old 10.04 LTS (Lucid) release from Amazon EC2 AMI Locator, with filter (possibly this solution will work for maverick (10.10 EOL) and natty (11.04 EOL) releases, but I was interested in LTS):

  • Zone: eu-west-1 (optional for you);
  • Name: lucid;
  • Arch: amd64 (x64 was needed, optional for you);
  • Instance Type: ebs (I like EBS, optional for you);

So, there was only one AMI solution with ID ami-ca1a14be, and I've clicked it for auto creation.

After initial creation of instance, let's update all packages with latest versions:

sudo apt-get update

sudo apt-get -y upgrade

Step 1. Installing Apache2 (optional)

This step can be already made by you, otherwise, you should install apache before php.

To do this, type:

sudo apt-get -y install apache2

After this, you may install any mods, but no php-mod.

Step 2. Installing PHP 5.2.17

The only good solution I have found was from Victor Piskunov. I will modify his instruction a bit, and will not install mysql extension, as it is not needed for clean php setup.

So the fist sub-step is to add new repository:

sudo apt-add-repository ppa:andphe/php

And update references:

sudo aptitude update

Next one to verify, that everything is fine:

apt-cache showpkg php5-common

And you will see a bunch of packages from php 5.2.17 for lucid:

The most interesting here is 5.2.17.dfsg.1-0ubuntu0ppa3~lucid suffix. Now we can install core PHP functions itself (some of them like cli, dev or pear you can remove, but they are useful for some reasons):

sudo aptitude -y install php5-common=5.2.17.dfsg.1-0ubuntu0ppa3~lucid libapache2-mod-php5=5.2.17.dfsg.1-0ubuntu0ppa3~lucid php5=5.2.17.dfsg.1-0ubuntu0ppa3~lucid php5-cli=5.2.17.dfsg.1-0ubuntu0ppa3~lucid php5-curl=5.2.17.dfsg.1-0ubuntu0ppa3~lucid php5-mcrypt=5.2.17.dfsg.1-0ubuntu0ppa3~lucid php5-gd=5.2.17.dfsg.1-0ubuntu0ppa3~lucid php5-dev=5.2.17.dfsg.1-0ubuntu0ppa3~lucid php-pear=5.2.17.dfsg.1-0ubuntu0ppa3~lucid

Now PHP 5.2.17 installed, you may try it with php -v.

Step 3. Installing extensions (optional)

For my target project, there was a need to install such extensions as memcache, and uuid. On modern versions of Ubuntu it is made with sudo apt-get install php5-uuid. But with old system, there is other approach.

For UUID:

sudo apt-get install uuid-dev

sudo pecl install uuid (on path request, press ENTER)

And don't forget to You should add "extension=uuid.so" to php.ini.

For Memcache:

sudo pecl install memcache

And don't forget to You should add "extension=memcache.so" to php.ini.

Same operations you can do for other extensions like pdo, pgsql, etc.

Bonus

Here you can launch your own copy of Ubuntu 10.04 with PHP 5.2.17, like prepared in this article.


blog comments powered by Disqus