編譯適用於 PHP 的 ElastiCache 叢集用戶端原始碼 - Amazon ElastiCache

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

編譯適用於 PHP 的 ElastiCache 叢集用戶端原始碼

本節說明如何取得及編譯適用於 PHP 的 ElastiCache 叢集用戶端之原始碼。

您需要從 GitHub 提取兩個套件並進行編譯:aws-elasticache-cluster-client-libmemcachedaws-elasticache-cluster-client-memcached-for-php

編譯 libmemcached 程式庫

必要程式庫

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

  • SASL (libsasl2,除非 ./configure --disable-sasl 已停用 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 自動探索用戶端

以下各節說明如何編譯 ElastiCache Memcached 自動探索用戶端

編譯適用於 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