编译适用于 PHP 的 ElastiCache Cluster Client 的源代码 - Amazon ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

编译适用于 PHP 的 ElastiCache Cluster Client 的源代码

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

有两个需要从 GitHub 提取并编译的数据包:aws-elasticache-cluster-client-libmemcachedaws-elasticache-cluster-client-memcached-for-php

编译 libmemcached 库

必备的库

  • OpenSSL 1.1.0 或更高版本(除非 TLS 支持已被 ./configure --disable-tls 禁用)。

  • SASL(libsasl2,除非 SASL 支持已被 ./configure --disable-sasl 禁用)。

编译 aws-elasticache-cluster-client-libmemcached 库
  1. 启动 Amazon EC2 实例。

  2. 安装库依赖项。

    • 在 Amazon Linux 201509 AMI / Amazon Linux 2 AMI 上

      sudo yum -y update sudo yum install gcc gcc-c++ autoconf libevent-devel make perl-core pcre-devel wget zlib-devel // Install OpenSSL 1.1.1 wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz tar xvf openssl-1.1.1c.tar.gz cd openssl-1.1.1c ./config make sudo make install sudo ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
    • 在 Ubuntu 14.04 AMI 上(OpenSSL >= 1.1 附带的 Ubuntu 版本不需要)

      sudo apt-get update sudo apt-get install libevent-dev gcc g++ make autoconf libsasl2-dev // Install OpenSSL 1.1.1 wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz tar xvf openssl-1.1.1c.tar.gz cd openssl-1.1.1c ./config make sudo make install sudo ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libssl.so.1.1
  3. 拉取存储库并编译代码。

    git clone https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached.git cd aws-elasticache-cluster-client-libmemcached touch configure.ac aclocal.m4 configure Makefile.am Makefile.in mkdir BUILD cd BUILD ../configure --prefix=<libmemcached-install-directory> --with-pic --disable-sasl

    如果运行 ../configure 无法找到 libssl(OpenSSL 库),则可能需要调整 PKG_CONFIG_PATH 环境变量:

    PKG_CONFIG_PATH=/path/to/ssl/lib/pkgconfig ../configure --prefix=<libmemcached-install-directory> --with-pic --disable-sasl

    或者,如果您没有使用 TLS,则可以通过运行以下操作来禁用它:

    make sudo make install ../configure —prefix=<libmemcached-install-directory> --with-pic --disable-sasl --disable-tls

编译适用于 PHP 的 ElastiCache Memcached Auto Discovery 客户端

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

编译适用于 PHP 7 或更高版本的 ElastiCache Memcached 客户端

将 PHP-7.x 替换为您正在使用的版本。

安装 PHP:

sudo yum install -y amazon-linux-extras sudo amazon-linux-extras enable php7.x

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

git clone https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php.git cd aws-elasticache-cluster-client-memcached-for-php phpize mkdir BUILD CD BUILD ../configure --with-libmemcached-dir=<libmemcached-install-directory> --disable-memcached-sasl

如果运行 ../configure 无法找到 libssl(OpenSSL 库),则可能需要将 PKG_CONFIG_PATH 环境变量调整为 OpenSSL 的 .PC 文件目录:

PKG_CONFIG_PATH=/path/to/ssl/lib/pkgconfig ../configure --with-libmemcached-dir=<path to libmemcached build directory> --disable-memcached-sasl

或者,如果您没有使用 TLS,则可以通过运行以下操作来禁用它:

make make install ../configure --with-libmemcached-dir=<path to libmemcached build directory> --disable-memcached-sasl --disable-memcached-tls
注意

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

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

编译适用于 PHP 5 的 ElastiCache Memcached 客户端

通过在 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/tree/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