

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 安装和编译集群客户端
<a name="Appendix.InstallingClients"></a>

本部分介绍如何安装、配置和编译 PHP 以及 .NET Amazon ElastiCache Auto Discovery 集群客户端。

**Topics**
+ [安装适用于 .NET 的 ElastiCache Cluster Client](Appendix.DotNETAutoDiscoverySetup.md)
+ [安装适用于 PHP 的 ElastiCache Cluster Client](Appendix.PHPAutoDiscoverySetup.md)
+ [编译适用于 PHP 的 ElastiCache Cluster Client 的源代码](Appendix.PHPAutoDiscoveryCompile.md)

# 安装适用于 .NET 的 ElastiCache Cluster Client
<a name="Appendix.DotNETAutoDiscoverySetup"></a>

您可以在 [https://github.com/awslabs/elasticache-cluster-config-net](https://github.com/awslabs/elasticache-cluster-config-net) 上找到开源的 ElastiCache .NET Cluster Client 代码。

本部分说明如何在 Amazon EC2 实例上安装、更新和移除适用于 ElastiCache Cluster Client 的 .NET 组件。有关 Auto Discovery 的更多信息，请参阅 [自动识别集群（Memcached）中的节点](AutoDiscovery.md)。有关使用客户端的 .NET 代码示例，请参阅 [使用适用于 .NET 的 ElastiCache Cluster Client](AutoDiscovery.Using.ModifyApp.DotNET.md)。

**Topics**
+ [安装 .NET](#Appendix.DotNETAutoDiscoverySetup.DotNET)
+ [下载适用于 ElastiCache 的 ElastiCache .NET 集群客户端](#Appendix.DotNETAutoDiscoverySetup.Downloading)
+ [使用 NuGet 安装 AWS 程序集](#Appendix.DotNETAutoDiscoverySetup.Installing)

## 安装 .NET
<a name="Appendix.DotNETAutoDiscoverySetup.DotNET"></a>

您必须安装了 .NET 3.5 或更高版本才能使用 AWS .NET SDK for ElastiCache。如果您未安装 .NET 3.5 或更高版本，则可从 [http://www.microsoft.com/net](http://www.microsoft.com/net) 下载并安装最新版本。

## 下载适用于 ElastiCache 的 ElastiCache .NET 集群客户端
<a name="Appendix.DotNETAutoDiscoverySetup.Downloading"></a>

**下载 ElastiCache .NET 集群客户端**

1. 登录 AWS 管理控制台 并打开 ElastiCache 控制台 ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/))。

1. 在导航窗格中，单击 **ElastiCache Cluster Client**。

1. 在 **Download ElastiCache Memcached Cluster Client** 列表中，选择 **.NET**，然后单击 **Download**。

## 使用 NuGet 安装 AWS 程序集
<a name="Appendix.DotNETAutoDiscoverySetup.Installing"></a>

NuGet 是 .NET 平台的包管理系统。NuGet 知道程序集依赖项并自动安装所有必需的文件。NuGet 安装的程序集将与您的解决方案存储在一起，而不是存储在 `Program Files` 这样的中央位置，因此您可安装特定于应用程序的版本，而不会产生兼容性问题。

### 安装 NuGet
<a name="Appendix.DotNETAutoDiscoverySetup.Installing.NuGet"></a>

NuGet 可从 MSDN 上的安装库进行安装；请参阅 [https://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c](https://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c)。如果您使用的是 Visual Studio 2010 或更高版本，则将自动安装 NuGet。

您可从 **Solution Explorer (解决方案资源管理器)** 或 **Package Manager Console (包管理器控制台)** 使用 NuGet。

### 从解决方案资源管理器使用 NuGet
<a name="Appendix.DotNETAutoDiscoverySetup.NuGet.SolutionExplorer"></a>

**从 Visual Studio 2010 的解决方案资源管理器中使用 NuGet**

1. 从 **Tools (工具)** 菜单中，选择 **Library Package Manager (库包管理器)**。

1. 单击 **Package Manager Console**（软件包管理器控制台）。

**从 Visual Studio 2012 或 Visual Studio 2013 的解决方案资源管理器中使用 NuGet**

1. 从 **Tools (工具)** 菜单中，选择 **NuGet Package Manager (NuGet 包管理器)**。

1. 单击 **Package Manager Console**（软件包管理器控制台）。

从命令行中，您可使用 `Install-Package` 安装程序集，如下所示。

```
Install-Package Amazon.ElastiCacheCluster
```

若要查看可通过 NuGet 提供的每个程序包（例如 AWS 开发工具包和 AWS Extensions 程序集）对应的网页，请参阅 NuGet 网站 ([http://www.nuget.org](http://www.nuget.org))。每个包对应的网页包括一个用于通过控制台安装包的示例命令行和一个列表（其中包含可通过 NuGet 使用的包的早期版本）。

有关 **Package Manager Console (包管理器控制台)** 命令的更多信息，请参阅 [http://nuget.codeplex.com/wikipage?title=Package%20Manager%20Console%20Command%20Reference%20%28v1.3%29](http://nuget.codeplex.com/wikipage?title=Package%20Manager%20Console%20Command%20Reference%20%28v1.3%29)。

# 安装适用于 PHP 的 ElastiCache Cluster Client
<a name="Appendix.PHPAutoDiscoverySetup"></a>

本部分说明如何在 Amazon EC2 实例上安装、更新和移除适用于 ElastiCache Cluster Client 的 PHP 组件。有关 Auto Discovery 的更多信息，请参阅 [自动识别集群（Memcached）中的节点](AutoDiscovery.md)。有关使用客户端的 PHP 示例代码，请参阅[使用适用于 PHP 的 ElastiCache 群集客户端](AutoDiscovery.Using.ModifyApp.PHP.md)。

**Topics**
+ [下载安装包](Appendix.PHPAutoDiscoverySetup.Downloading.md)
+ [针对已经安装 *php-memcached* 扩展的用户](#Appendix.PHPAutoDiscoverySetup.InstallingExisting)
+ [新用户安装步骤](Appendix.PHPAutoDiscoverySetup.Installing.md)
+ [移除 PHP 集群客户端](Appendix.PHPAutoDiscoverySetup.Removing.md)

# 下载安装包
<a name="Appendix.PHPAutoDiscoverySetup.Downloading"></a>

为了确保适用于 PHP 的 ElastiCache Cluster Client 的版本正确，您需要了解您的 Amazon EC2 实例上安装的是哪一个版本的 PHP。此外，还需要知道您的 Amazon EC2 实例是在 64 位还是 32 位版本的 Linux 上运行的。

**确定安装在 Amazon EC2 实例上的 PHP 版本**
+ 在命令提示符下，运行以下命令：

  ```
  php -v
  ```

  PHP 版本将在输出中显示，如本示例所示：

  ```
  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
  ```
**注意**  
如果您的 PHP 版本与 Memcached 版本不兼容，您会收到与下面类似的错误消息：  

  ```
  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
  ```
如果出现这种情况，您需要从源代码编译模块。有关更多信息，请参阅 [编译适用于 PHP 的 ElastiCache Cluster Client 的源代码](Appendix.PHPAutoDiscoveryCompile.md)。

**确定您的 Amazon EC2 AMI 架构（64 位或 32 位）**

1. 登录到 AWS 管理控制台 并打开 Amazon EC2 控制台（[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)）。

1. 在 **Instances（实例）**列表中，单击您的 Amazon EC2 实例。

1. 在 **Description** 选项卡上，查找 **AMI:** 字段。64 位实例应该把 `x86_64` 作为描述的一部分；对于 32 位实例，查找本字段中的 `i386` 或 `i686`。

您现在准备下载 ElastiCache Cluster Client。

**下载适用于 PHP 的 ElastiCache Cluster Client**

1. 登录 AWS 管理控制台 并打开 ElastiCache 控制台 ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/))。

1. 在 ElastiCache 控制台中，选择 **ElastiCache Cluster Client**。

1. 从 **Download ElastiCache Memcached Cluster Client（下载 ElastiCache Memcached Cluster Client）**列表中，选择与 PHP 版本和 AMI 架构匹配的 ElastiCache Cluster Client，然后选择 **Download（下载）**按钮。

## 针对已经安装 *php-memcached* 扩展的用户
<a name="Appendix.PHPAutoDiscoverySetup.InstallingExisting"></a>

**更新 `php-memcached` 安装**

1. 移除先前安装的适用于 PHP 的 Memcached 扩展，如主题[移除 PHP 集群客户端](Appendix.PHPAutoDiscoverySetup.Removing.md)所述。

1. 如前面的 [新用户安装步骤](Appendix.PHPAutoDiscoverySetup.Installing.md) 中所述，安装新的 ElastiCache `php-memcached` 扩展。

# 新用户安装步骤
<a name="Appendix.PHPAutoDiscoverySetup.Installing"></a>

**Topics**
+ [为新用户安装 PHP 7.x](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x)
+ [为新用户安装 PHP 5.x](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x)

## 为新用户安装 PHP 7.x
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x"></a>

**Topics**
+ [在 Ubuntu Server 14.04 LTS AMI（64 位和 32 位）上安装 PHP 7](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.Ubuntu)
+ [在 Amazon Linux 201609 AMI 上安装 PHP 7](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.AmznLinux)
+ [在 SUSE Linux AMI 上安装 PHP 7](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.SuseLinux)

### 在 Ubuntu Server 14.04 LTS AMI（64 位和 32 位）上安装 PHP 7
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.Ubuntu"></a>

1. 从 AMI 启动新实例。

1. 运行以下命令：

   ```
   sudo apt-get update
   sudo apt-get install gcc g++
   ```

1. 安装 PHP 7。

   ```
   sudo yum install php70
   ```

1. 下载 Amazon ElastiCache Cluster Client。

   ```
   wget https://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-7.0/latest-64bit
   ```

1. 提取 `latest-64bit`。

   ```
   tar -zxvf latest-64bit
   ```

1. 在具有 Root 权限的情况下，将提取的工件文件 `amazon-elasticache-cluster-client.so` 复制到 `/usr/lib/php/20151012`。

   ```
   sudo mv artifact/amazon-elasticache-cluster-client.so /usr/lib/php/20151012
   ```

1. 将 `extension=amazon-elasticache-cluster-client.so` 行插入到文件 `/etc/php/7.0/cli/php.ini`。

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php/7.0/cli/php.ini
   ```

1. 启动或重启 Apache 服务器。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### 在 Amazon Linux 201609 AMI 上安装 PHP 7
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.AmznLinux"></a>

1. 从 AMI 启动新实例。

1. 运行以下命令：

   ```
   sudo yum install gcc-c++
   ```

1. 安装 PHP 7。

   ```
   sudo yum install php70
   ```

1. 下载 Amazon ElastiCache Cluster Client。

   ```
   wget https://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-7.0/latest-64bit
   ```

1. 提取 `latest-64bit`。

   ```
   tar -zxvf latest-64bit
   ```

1. 在具有 Root 权限的情况下，将提取的构件文件 `amazon-elasticache-cluster-client.so` 复制到 `/usr/lib64/php/7.0/modules/`。

   ```
   sudo mv artifact/amazon-elasticache-cluster-client.so /usr/lib64/php/7.0/modules/
   ```

1. 创建 `50-memcached.ini` 文件。

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php-7.0.d/50-memcached.ini
   ```

1. 启动或重启 Apache 服务器。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### 在 SUSE Linux AMI 上安装 PHP 7
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.SuseLinux"></a>

1. 从 AMI 启动新实例。

1. 运行以下命令：

   ```
   sudo zypper install gcc
   ```

1. 安装 PHP 7。

   ```
   sudo yum install php70
   ```

1. 下载 Amazon ElastiCache Cluster Client。

   ```
   wget https://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-7.0/latest-64bit
   ```

1. 提取 `latest-64bit`。

   ```
   tar -zxvf latest-64bit
   ```

1. 在具有 Root 权限的情况下，将提取的构件文件 `amazon-elasticache-cluster-client.so` 复制到 `/usr/lib64/php7/extensions/`。

   ```
   sudo mv artifact/amazon-elasticache-cluster-client.so /usr/lib64/php7/extensions/
   ```

1. 将 `extension=amazon-elasticache-cluster-client.so` 行插入到文件 `/etc/php7/cli/php.ini`。

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php7/cli/php.ini
   ```

1. 启动或重启 Apache 服务器。

   ```
   sudo /etc/init.d/httpd start
   ```

 

## 为新用户安装 PHP 5.x
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x"></a>

**Topics**
+ [在 Amazon Linux AMI 2014.03（64 位和 32 位）上安装 PHP 5](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.AmznLinux)
+ [在 Red Hat Enterprise Linux 7.0 AMI（64 位和 32 位）上安装 PHP 5](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.RHEL)
+ [在 Ubuntu Server 14.04 LTS AMI（64 位和 32 位）上安装 PHP 5](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Ubuntu)
+ [为 SUSE Linux Enterprise Server 11 AMI（64 位或 32 位）安装 PHP 5](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.SuseLinux)
+ [其他 Linux 分配](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Other)

### 在 Amazon Linux AMI 2014.03（64 位和 32 位）上安装 PHP 5
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.AmznLinux"></a>

1. 启动一个 Amazon Linux 实例（64 位或 32 位），然后登录。

1. 安装 PHP 依赖项：

   ```
   sudo yum install gcc-c++ php php-pear
   ```

1. 下载适用于您的 Amazon EC2 实例和 PHP 版本的正确 `php-memcached` 软件包。有关更多信息，请参阅 [下载安装包](Appendix.PHPAutoDiscoverySetup.Downloading.md)。

1. 安装 `php-memcached`。URI 应为安装包的下载路径：

   ```
   sudo pecl install <package download path>
   ```

   这是一个关于 PHP 5.4、64 位 Linux 的示例安装命令。在这个示例中，使用实际版本号代替 *X.Y.Z*：

   ```
   sudo pecl install /home/AmazonElastiCacheClusterClient-X.Y.Z-PHP54-64bit.tgz
   ```
**注意**  
请务必使用最新版本的安装工件。

1. 在具有 Root/Sudo 权限的情况下，在 `memcached.ini` 目录中添加一个名为 `/etc/php.d` 的新文件，然后在该文件中插入“extension=amazon-elasticache-cluster-client.so”：

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

1. 启动或重启 Apache 服务器。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### 在 Red Hat Enterprise Linux 7.0 AMI（64 位和 32 位）上安装 PHP 5
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.RHEL"></a>

1. 启动一个 Red Hat Enterprise Linux 实例（64 位或 32 位），然后登录。

1. 安装 PHP 依赖项：

   ```
   sudo yum install gcc-c++ php php-pear
   ```

1. 下载适用于您的 Amazon EC2 实例和 PHP 版本的正确 `php-memcached` 软件包。有关更多信息，请参阅 [下载安装包](Appendix.PHPAutoDiscoverySetup.Downloading.md)。

1. 安装 `php-memcached`。URI 应为安装包的下载路径：

   ```
   sudo pecl install <package download path>
   ```

1. 在具有 Root/Sudo 权限的情况下，在 `memcached.ini` 目录中添加一个名为 `/etc/php.d` 的新文件，然后在该文件中插入 `extension=amazon-elasticache-cluster-client.so`。

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

1. 启动或重启 Apache 服务器。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### 在 Ubuntu Server 14.04 LTS AMI（64 位和 32 位）上安装 PHP 5
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Ubuntu"></a>

1. 启动一个 Ubuntu Linux 实例（64 位或 32 位），然后登录。

1. 安装 PHP 依赖项：

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

1. 下载适用于您的 Amazon EC2 实例和 PHP 版本的正确 `php-memcached` 软件包。有关更多信息，请参阅 [下载安装包](Appendix.PHPAutoDiscoverySetup.Downloading.md)。

1. 安装 `php-memcached`。URI 应为安装包的下载路径。

   ```
   sudo pecl install <package download path>
   ```
**注意**  
此安装步骤将构建工件 `amazon-elasticache-cluster-client.so` 安装到 `/usr/lib/php5/20121212*` 目录中。请核对构建工件的绝对路径，因为您在下一个步骤中需要使用此路径。

   如果上一个命令不起作用，则需要从下载的 `amazon-elasticache-cluster-client.so` 文件中手动提取 PHP 客户端工件 `*.tgz`，将它复制到 `/usr/lib/php5/20121212*` 目录。

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

1. 在具有 Root/Sudo 权限的情况下，在 `memcached.ini` 目录中添加一个名为 `/etc/php5/cli/conf.d` 的新文件，然后在该文件中插入“extension=<amazon-elasticache-cluster-client.so 的绝对路径>”。

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

1. 启动或重启 Apache 服务器。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### 为 SUSE Linux Enterprise Server 11 AMI（64 位或 32 位）安装 PHP 5
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.SuseLinux"></a>

1. 启动一个 SUSE Linux 实例（64 位或 32 位），然后登录。

1. 安装 PHP 依赖项：

   ```
   sudo zypper install gcc php53-devel
   ```

1. 下载适用于您的 Amazon EC2 实例和 PHP 版本的正确 `php-memcached` 软件包。有关更多信息，请参阅 [下载安装包](Appendix.PHPAutoDiscoverySetup.Downloading.md)。

1. 安装 `php-memcached`。URI 应为安装包的下载路径。

   ```
   sudo pecl install <package download path>
   ```

1. 在具有 Root/Sudo 权限的情况下，在 `memcached.ini` 目录中添加一个名为 `/etc/php5/conf.d` 的新文件，然后在该文件中插入 **extension=`amazon-elasticache-cluster-client.so`**。

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

1. 启动或重启 Apache 服务器。

   ```
   sudo /etc/init.d/httpd start
   ```

**注意**  
如果步骤 5 不适用于任何以前的平台，请验证 `amazon-elasticache-cluster-client.so` 的安装路径。另外，在扩展中指定二进制文件的完整路径。此外，请确认所用的 PHP 是受支持的版本。我们支持版本 5.3 到 5.5。

 

### 其他 Linux 分配
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Other"></a>

在某些系统（特别是 CentOS7 和 Red Hat Enterprise Linux (RHEL) 7.1）上，`libsasl2.so.3` 已替代 `libsasl2.so.2`。在这些系统上，当您加载 ElastiCache 集群客户端时，它会尝试查找和加载 `libsasl2.so.2`，但此尝试将失败。要解决此问题，请创建一个指向 `libsasl2.so.3` 的符号链接，以便在客户端尝试加载 libsasl2.so.2 时将重定向到 `libsasl2.so.3`。以下代码将创建此符号链接。

```
cd /usr/lib64
sudo ln libsasl2.so.3 libsasl2.so.2
```

# 移除 PHP 集群客户端
<a name="Appendix.PHPAutoDiscoverySetup.Removing"></a>

**Topics**
+ [移除早期版本的 PHP 7](#Appendix.PHPAutoDiscoverySetup.Removing.PHP7x)
+ [移除早期版本的 PHP 5](#Appendix.PHPAutoDiscoverySetup.Removing.PHP5x)

## 移除早期版本的 PHP 7
<a name="Appendix.PHPAutoDiscoverySetup.Removing.PHP7x"></a>

**移除早期版本的 PHP 7**

1. 依照前述安装说明，从相应的 PHP 库目录中删除 `amazon-elasticache-cluster-client.so` 文件。请参阅[针对已经安装 *php-memcached* 扩展的用户](Appendix.PHPAutoDiscoverySetup.md#Appendix.PHPAutoDiscoverySetup.InstallingExisting)处关于您的安装的部分。

1. 从 `extension=amazon-elasticache-cluster-client.so` 文件中移除 `php.ini` 行。

1. 启动或重启 Apache 服务器。

   ```
   sudo /etc/init.d/httpd start
   ```

## 移除早期版本的 PHP 5
<a name="Appendix.PHPAutoDiscoverySetup.Removing.PHP5x"></a>

**移除早期版本的 PHP 5**

1. 移除 `php-memcached` 扩展：

   ```
   sudo pecl uninstall __uri/AmazonElastiCacheClusterClient
   ```

1.  依照前述安装步骤，移除添加在相应目录中的 `memcached.ini` 文件。

# 编译适用于 PHP 的 ElastiCache Cluster Client 的源代码
<a name="Appendix.PHPAutoDiscoveryCompile"></a>

本部分介绍如何获取和编译适用于 PHP 的 ElastiCache Cluster Client 的源代码。

有两个需要从 GitHub 提取并编译的数据包：[aws-elasticache-cluster-client-libmemcached](https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached) 和 [aws-elasticache-cluster-client-memcached-for-php](https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php)。

**Topics**
+ [编译 libmemcached 库](#Appendix.PHPAutoDiscoveryCompile.Libmemcached)
+ [编译适用于 PHP 的 ElastiCache Memcached Auto Discovery 客户端](#Appendix.PHPAutoDiscoveryCompile.Client)

## 编译 libmemcached 库
<a name="Appendix.PHPAutoDiscoveryCompile.Libmemcached"></a>

**编译 aws-elasticache-cluster-client-libmemcached 库**

1. 启动 Amazon EC2 实例。

1. 安装库依赖项。
   + 在 Amazon Linux 201509 AMI 上

     ```
     sudo yum install gcc gcc-c++ autoconf libevent-devel
     ```
   + 在 Ubuntu 14.04 AMI 上

     ```
     sudo apt-get update
     sudo apt-get install libevent-dev gcc g++ make autoconf libsasl2-dev
     ```

1. 拉取存储库并编译代码。

   ```
   Download and install [ https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached/archive/v1.0.18.tar.gz]( https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached/archive/v1.0.18.tar.gz)
   ```

## 编译适用于 PHP 的 ElastiCache Memcached Auto Discovery 客户端
<a name="Appendix.PHPAutoDiscoveryCompile.Client"></a>

以下部分介绍如何编译 ElastiCache Memcached Auto Discovery 客户端

**Topics**
+ [编译适用于 PHP 7 的 ElastiCache Memcached 客户端](#Appendix.PHPAudiscoveryCompile.Client.PHP7)
+ [编译适用于 PHP 5 的 ElastiCache Memcached 客户端](#Appendix.PHPAudiscoveryCompile.PHP5)

### 编译适用于 PHP 7 的 ElastiCache Memcached 客户端
<a name="Appendix.PHPAudiscoveryCompile.Client.PHP7"></a>

在代码目录下运行下面一组命令。

```
git clone https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php.git
cd aws-elasticache-cluster-client-memcached-for-php 
git checkout php7
sudo yum install php70-devel
phpize
./configure --with-libmemcached-dir=<libmemcached-install-directory> --disable-memcached-sasl
make
make install
```

**注意**  
您可以将 libmemcached 库静态链接到 PHP 二进制文件，以使其可以跨各种 Linux 平台传输。为此，请在 `make` 之前运行以下命令：  

```
sed -i "s#-lmemcached#<libmemcached-install-directory>/lib/libmemcached.a -lcrypt -lpthread -lm -lstdc++ -lsasl2#" Makefile 
```

### 编译适用于 PHP 5 的 ElastiCache Memcached 客户端
<a name="Appendix.PHPAudiscoveryCompile.PHP5"></a>

通过在 `aws-elasticache-cluster-client-memcached-for-php` 文件夹下运行以下命令，编译 `aws-elasticache-cluster-client-memcached-for-php/`。

```
git clone https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php.git
cd aws-elasticache-cluster-client-memcached-for-php 
sudo yum install zlib-devel
phpize
./configure --with-libmemcached-dir=<libmemcached-install-directory>
make
make install
```