Menu
Amazon ElastiCache
User Guide (API Version 2015-02-02)

Installing the ElastiCache Cluster Client for PHP

This section describes how to install, update, and remove the PHP components for the ElastiCache Cluster Client on Amazon EC2 instances. For more information about Auto Discovery, see Node Auto Discovery (Memcached). For sample PHP code to use the client. see Using the ElastiCache Cluster Client for PHP.

Downloading the Installation Package

To ensure that you use the correct version of the ElastiCache Cluster Client for PHP, you will need to know what version of PHP is installed on your Amazon EC2 instance. You will also need to know whether your Amazon EC2 instance is running a 64-bit or 32-bit version of Linux.

To determine the PHP version installed on your Amazon EC2 instance

  • At the command prompt, run the following command:

    Copy
    $ php -v

    The PHP version will be shown in the output, as in this example:

    Copy
    PHP 5.4.10 (cli) (built: Jan 11 2013 14:48:57) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

    Note

    If your PHP and Memcached versions are incompatible, you will get an error message something like the following:

    Copy
    PHP Warning: PHP Startup: memcached: Unable to initialize module Module compiled with module API=20100525 PHP compiled with module API=20131226 These options need to match in Unknown on line 0

    If this happens, you need to compile the module from the source code. For more information, see Compiling the Source Code for the ElastiCache Cluster Client for PHP.

To determine your Amazon EC2 AMI architecture (64-bit or 32-bit)

  1. Sign in to the AWS Management Console and open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.

  2. In the Instances list, click your Amazon EC2 instance.

  3. In the Description tab, look for the AMI: field. A 64-bit instance should have x86_64 as part of the description; for a 32-bit instance, look for i386 or i686 in this field.

You are now ready to download the ElastiCache Cluster Client.

To download the ElastiCache Cluster Client for PHP

  1. Sign in to the AWS Management Console and open the ElastiCache console at https://console.aws.amazon.com/elasticache/.

  2. From the ElastiCache console, click Download ElastiCache Cluster Client.

  3. Choose the ElastiCache Cluster Client that matches your PHP version and AMI architecture, and click the Download ElastiCache Cluster Client button.

Installation Steps for New Users

Installing PHP 7.x for New Users

To install PHP 7 on a Ubuntu Server 14.04 LTS AMI (64-bit and 32-bit)

  1. Launch a new instance from the AMI.

  2. Run the following commands:

    Copy
    sudo apt-get update sudo apt-get install gcc g++
  3. Install PHP 7.

  4. Download and unzip Amazon ElastiCache Cluster Client.

  5. With root permissions, copy the extracted artifact file amazon-elasticache-cluster-client.so into /usr/lib/php/20151012.

  6. Insert the line extension=amazon-elasticache-cluster-client.so into the file /etc/php/7.0/cli/php.ini.

To install PHP 7 on an Amazon Linux 201509 AMI or Red Hat 7 AMI

  1. Launch a new instance from the AMI.

  2. Run the following command:

    Copy
    sudo yum install gcc-c++
  3. Install PHP 7.

  4. Download and unzip Amazon ElastiCache Cluster Client.

  5. With root permission, copy the extracted artifact file amazon-elasticache-cluster-client.so into /usr/lib64/php/7.0/modules/.

  6. Insert the line extension=amazon-elasticache-cluster-client.so into file /etc/php.ini.

To install PHP 7 on an SUSE Linux AMI

  1. Launch a new instance from the AMI.

  2. Run the following command:

    Copy
    sudo zypper install gcc
  3. Install PHP 7.

  4. Download and unzip Amazon ElastiCache Cluster Client.

  5. With root permission, copy the extracted artifact file amazon-elasticache-cluster-client.so into /usr/lib64/php7/extensions/.

  6. Insert the line extension=amazon-elasticache-cluster-client.so into the file /etc/php7/cli/php.ini.

Installing PHP 5.x for New Users

To install PHP 5 on an Amazon Linux AMI 2014.03 (64-bit and 32-bit)

  1. Launch an Amazon Linux instance (either 64-bit or 32-bit) and log into it.

  2. Install PHP dependencies:

    Copy
    $ sudo yum install gcc-c++ php php-pear
  3. Download the correct php-memcached package for your Amazon EC2 instance and PHP version. For more information, see Downloading the Installation Package.

  4. Install php-memcached. The URI should be the download path for the installation package:

    Copy
    $ sudo pecl install <package download path>

    Here is a sample installation command for PHP 5.4, 64-bit Linux. In this sample, replace X.Y.Z with the actual version number:

    Copy
    $ sudo pecl install /home/AmazonElastiCacheClusterClient-X.Y.Z-PHP54-64bit.tgz

    Note

    Please use the latest version of the install artifact.

  5. With root/sudo permission, add a new file named memcached.ini in the /etc/php.d directory, and insert "extension=amazon-elasticache-cluster-client.so" in the file:

    Copy
    $ echo "extension=amazon-elasticache-cluster-client.so" | sudo tee /etc/php.d/memcached.ini

To install PHP 5 on a Red Hat Enterprise Linux 7.0 AMI (64-bit and 32-bit)

  1. Launch a Red Hat Enterprise Linux instance (either 64-bit or 32-bit) and log into it.

  2. Install PHP dependencies:

    Copy
    $ sudo yum install gcc-c++ php php-pear

  3. Download the correct php-memcached package for your Amazon EC2 instance and PHP version. For more information, see Downloading the Installation Package.

  4. Install php-memcached. The URI should be the download path for the installation package:

    Copy
    $ sudo pecl install <package download path>

  5. With root/sudo permission, add a new file named memcached.ini in the /etc/php.d directory, and insert extension=amazon-elasticache-cluster-client.so in the file.

    Copy
    $ echo "extension=amazon-elasticache-cluster-client.so" | sudo tee /etc/php.d/memcached.ini

Other Linux distributions

On some systems, notably CentOS7 and Red Hat Enterprise Linux (RHEL) 7.1, libsasl2.so.3 has replaced libsasl2.so.2. On those systems, when you load the ElastiCache cluster client, it attempts and fails to find and load libsasl2.so.2. To resolve this issue, create a symbolic link to libsasl2.so.3 so that when the client attempts to load libsasl2.so.2, it is redirected to libsasl2.so.3. The following code creates this symbolic link.

Copy
$ cd /usr/lib64 $ sudo ln libsasl2.so.3 libsasl2.so.2

To install PHP 5 on a Ubuntu Server 14.04 LTS AMI (64-bit and 32-bit)

  1. Launch an Ubuntu Linux instance (either 64-bit or 32-bit) and log into it.

  2. Install PHP dependencies:

    Copy
    $ sudo apt-get update sudo apt-get install gcc g++ php5 php-pear

  3. Download the correct php-memcached package for your Amazon EC2 instance and PHP version. For more information, see Downloading the Installation Package.

  4. Install php-memcached. The URI should be the download path for the installation package.

    Copy
    $ sudo pecl install <package download path>

    Note

    This installation step installs the build artifact amazon-elasticache-cluster-client.so into the /usr/lib/php5/20121212* directory. Please verify the absolute path of the build artifact because it is needed by the next step.

    If the previous command doesn't work, you need to manually extract the PHP client artifact amazon-elasticache-cluster-client.so from the downloaded *.tgz file, and copy it to the /usr/lib/php5/20121212* directory.

    Copy
    $ tar -xvf <package download path> cp amazon-elasticache-cluster-client.so /usr/lib/php5/20121212/

  5. With root/sudo permission, add a new file named memcached.ini in the /etc/php5/cli/conf.d directory, and insert "extension=<absolute path to amazon-elasticache-cluster-client.so>" in the file.

    Copy
    $ echo "extension=<absolute path to amazon-elasticache-cluster-client.so>" | sudo tee /etc/php5/cli/conf.d/memcached.ini

To install PHP 5 for SUSE Linux Enterprise Server 11 AMI (64-bit or 32-bit)

  1. Launch a SUSE Linux instance (either 64-bit or 32-bit) and log into it.

  2. Install PHP dependencies:

    Copy
    $ sudo zypper install gcc php53-devel

  3. Download the correct php-memcached package for your Amazon EC2 instance and PHP version. For more information, see Downloading the Installation Package.

  4. Install php-memcached. The URI should be the download path for the installation package.

    Copy
    $ sudo pecl install <package download path>

  5. With root/sudo permission, add a new file named memcached.ini in the /etc/php5/conf.d directory, and insert extension=amazon-elasticache-cluster-client.so in the file.

    Copy
    $ echo "extension=amazon-elasticache-cluster-client.so" | sudo tee /etc/php5/conf.d/memcached.ini

Note

If Step 5 doesn't work for any of the previous platforms, please verify the install path for amazon-elasticache-cluster-client.so, and specify the full path of the binary in the extension. Also, verify that the PHP in use is a supported version. We support versions 5.3 through 5.5.

For Users Who Already Have php-memcached Extension Installed

To update the php-memcached installation

  1. Remove the previous installation of the Memcached extension for PHP as described by the topic Removing the PHP Cluster Client.

  2. Install the new ElastiCache php-memcached extension as described previously in Installation Steps for New Users.

Removing the PHP Cluster Client

Removing an earlier version of PHP 7

To remove an earlier version of PHP 7

  1. Remove the amazon-elasticache-cluster-client.so file from the appropriate PHP lib directory as previously indicated in the installation instructions. See the section for your installation at For Users Who Already Have php-memcached Extension Installed.

  2. Remove the line extension=amazon-elasticache-cluster-client.so from the php.ini file.

Removing an earlier version of PHP 5

To remove an earlier version of PHP 5

  1. Remove the php-memcached extension:

    Copy
    $ sudo pecl uninstall __uri/AmazonElastiCacheClusterClient
  2. Remove the memcached.ini file added in the appropriate directory as indicated in the previous installation steps.