

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

# 编译适用于 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
```