Add PHP Extensions with No Control Panel or Plesk

This article will cover how to compile a shared object file for PHP without having to recompile Apache entirely. This article does not apply to WHM (Cpanel) as Cpanel has its own internal compiler.

PHP Version

First you need to obtain the version of PHP the server is running. Log into the server via SSH and run the following command:

$ php –v

This will report data similar to the following:

PHP 5.1.6 (cli) (built: Sep 20 2007 10:16:10)

Copyright (c) 1997-2006 The PHP Group

Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies

with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

 

 

In this case, the server is running PHP version 5.1.6. You need to grab the source for this exact version of PHP; you can find a complete archive on php.net's release site. Copy the download link as you will need it to download the archive to the server:

$ cd /usr/local/src
$
$ wget http://museum.php.net/php5/php-5.1.6.tar.gz
--13:13:06-- http://museum.php.net/php5/php-5.1.6.tar.gz
Resolving museum.php.net... 128.39.198.38
Connecting to museum.php.net|128.39.198.38|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8187896 (7.8M) [application/x-tar]
Saving to: `php-5.1.6.tar.gz'
100%[==========================================================================================>] 8,187,896 574K/s in 14s
13:13:21 (554 KB/s) - `php-5.1.6.tar.gz' saved [8187896/8187896]

 

Requirements

Make sure that the server has the development tools from our distribution:

$ yum groupinstall "Development Tools"

 

We'll also need to ensure the server has the PHP development package installed:

$ yum install php-devel

 

Some PHP extensions are built-in with no external requirements however most do require a library or two. As an example, the steps below will show how to install the mcrypt extension. To get information on a particular extensions just go to http://php.net/<extensionName> (http://php.net/mcrypt, in our example). In this documentation is a section called Installing/Configuring. Be sure to read this page as it contains all the information you will need to compile the extension.

These functions work using » mcrypt. To use it, download libmcrypt-x.x.tar.gz from »http://mcrypt.sourceforge.net/ and follow the included installation instructions. Windows users will find all the needed compiled mcrypt binaries at » http://files.edin.dk/php/win32/mcrypt/.

As of PHP 5.0.0 you will need libmcrypt Version 2.5.6 or greater.

If you linked against libmcrypt 2.4.x or higher, the following additional block algorithms are supported: CAST, LOKI97, RIJNDAEL, SAFERPLUS, SERPENT and the following stream ciphers: ENIGMA (crypt), PANAMA, RC4 and WAKE. With libmcrypt 2.4.x or higher another cipher mode is also available; nOFB.

So this extension requires the 'mcrypt' library. Luckily if your distribution supports 'mcrypt' we can typically run 'yum install libmcrypt' (CentOS) and then proceed to the next step. Many extensions require the development packages be installed for a particular piece of software, in such cases the development libraries are named `packageName-devel`. If your distribution does not support 'mycrypt', or the library required by your extension, follow the instructions found on the Installing/Configuring page.

Compilation

Now that the server meets the necessary requirements you will need to extract the archive and compile the module.

This method works for PECL extensions as well as built-in extensions:

$ tar xzf php-5.1.6.tar.gz && cd php-5.1.6
$ cd ext/mcrypt/
$ phpize
$ ./configure && make && make install

 

For extensions such as mcrypt the configuration file may not be created automatically. As such, you will need to create a file in /etc/php.d/extension.ini replacing extension with the name of the extension you are installing with the following information:

$ cat /etc/php.d/mcrypt.ini
extension=mcrypt.so

 

Cleanup

Note: Some important packages like Subversion could be removed by doing this! Use at your own discretion.

$ yum groupremove "Development Tools"

 

Testing

Check that PHP recognizes your new extension:

$ php -i | grep mcryptmcrypt
mcrypt support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value

 

 

If the extension is recognized, restart Apache and the extension is ready for use.

  • 2 Users Found This Useful
Was this answer helpful?

Related Articles

Installing htop

htop is an interactive process viewer for Linux, which is a powerful alternative to the...

Bind Multiple IP Addresses to a Single Network Interface Card (NIC)

This tutorial demonstrates how to bind multiple IP addresses to a single NICI'll be using LAN...

Clear Memory Cache on Linux Server

By default the Linux OS has a very efficient memory management process that should be freeing any...

Set the time on a Linux server

Log into the server via SSHAt the shell prompt run the following command:date MMDDHHmmYYYYFor...

Check your disk usage in Linux

A good way to check your disk usage for folders on your Linux server is via shell.Download...