aerospike/aerospike-client-php

此软件包已被废弃且不再维护。未建议替代软件包。

Aerospike PHP 客户端作为 PHP7 的 C 扩展

7.5.2 2020-03-10 18:12 UTC

README

License

注意:适用于Aerospike数据库的PHP 8兼容客户端可在aerospike/php-client找到。

此旧版客户端支持PHP版本 >= 7。支持PHP版本高达5的旧客户端位于aerospike-client-php5 仓库

与先前Aerospike PHP客户端的差异

  • 已删除LDT支持。
  • 方法参数的类型检查通常更严格。如果您不确定函数的参数是整数还是字符串,建议将其转换为方法指定类型。启用strict_types可以帮助捕捉一些问题。
  • 如果构造函数无法连接到集群,将抛出异常。
  • \Aerospike\Bytes将被存储为类型AS_BYTES_BLOB,而不是AS_BYTES_PHP。此更改允许与其他客户端有更好的兼容性。
  • 如果服务器上以AS_BYTES_BLOB存储数据,并且未注册反序列化器,则相应地将返回Aerospike\Bytes。先前版本的Aerospike PHP客户端在遇到AS_BYTES_BLOB且未注册反序列化器时返回字符串。注意:不建议同时使用\Aerospike\Bytes和用户指定的反序列化器,因为这可能会导致错误。
  • 已删除对PHP版本 < 7 的支持。
  • aerospike.serializer的INI条目现在接受整数值。0表示无序列化器,1表示默认PHP序列化,2表示用户指定序列化器。有关代码值的更多信息,请参阅配置
  • 构造函数将不再尝试为用户创建唯一的SHM键。如果shm配置数组中未指定键,则使用默认值。构造函数中提供的键将优先于INI中指定的值。
  • 客户端使用SHM键时使用的共享内存布局已更改。默认键也已更改,以防止新旧客户端之间的意外共享。
  • info调用的响应格式可能已更改。现在它将请求包括在响应的开头。
  • 使用带有摘要的initKey时,摘要必须正好是20字节。
  • Aerospike::LOG_LEVEL_*常量的整数值已更改。除非用户将日志级别作为整数提供而不是使用常量,否则这不应影响用户。
  • 已删除Aerospike::LOG_LEVEL_OFF。它不再有任何影响。

文档

此旧版Aerospike PHP客户端的文档在doc目录中。有关实现内部的说明在doc/internals.md中。

示例PHP代码可在examples目录中找到。

依赖

CentOS和RedHat (yum)

sudo yum groupinstall "Development Tools"
sudo yum install openssl-devel
# You will need PHP7 development headers. If PHP7 was manually installed, these should be available
# by default; Otherwise, you will need to fetch them from a repository, the package name may vary.
sudo yum install php-pear # unless PHP was manually installed

Ubuntu和Debian (apt)

sudo apt-get install build-essential autoconf libssl-dev
sudo apt-get install php7.0-dev php-pear # unless PHP was manually installed

OS X

默认情况下,OS X 可能会缺少命令行工具。在 Mavericks(OS X 10.9)和更高版本中,这些工具可以在不安装 Xcode 的情况下安装

xcode-select --install # install the command line tools, if missing

可以通过 OS X 的软件包管理器 Homebrew 安装依赖项。

brew update && brew doctor
brew install automake
brew install openssl

要切换 PHP 版本,请查看此 gist

由于此库依赖于 OpenSSL,因此在安装过程中可能会出现链接问题。为了解决这些问题,我们建议运行 brew info openssl

此命令将显示关于 openssl 头文件和库位置的一些信息。特别是,应该有一个看起来像这样的段落:为了编译器找到此软件,您可能需要设置:LDFLAGS: -L/usr/local/opt/openssl/lib CPPFLAGS: -I/usr/local/opt/openssl/include

为了正确链接和编译库,可以将两个环境变量 AS_OSX_OPENSSL_INCAS_OSX_OPENSSL_LINK 设置为相应的值(如果路径如上所述):export AS_OSX_OPENSSL_INC="-I/usr/local/opt/openssl/include" export AS_OSX_OPENSSL_LINK="-L/usr/local/opt/openssl/lib"

目前不支持 Windows。

安装

使用 Composer 构建

使用Composer,您可以下载和构建 PHP 扩展

composer require aerospike/aerospike-client-php ~7.0
find vendor/aerospike/aerospike-client-php/ -name "*.sh" -exec chmod +x {} \;
cd vendor/aerospike/aerospike-client-php/ && sudo composer run-script post-install-cmd

手动构建

要手动构建 PHP 扩展,您需要从 Github 上获取最新版本,然后在 src/ 目录中运行 build.sh 脚本。

cd src
./build.sh

如果需要,这将下载 Aerospike C 客户端 SDK 到 src/../aerospike-client-c/,并启动 make

安装 PHP 扩展

要安装 PHP 扩展,请

make install
php -i | grep ".ini "

现在编辑 php.ini 文件。如果 PHP 配置为 --with-config-file-scan-dir(通常设置为 /etc/php.d/),您可以在该目录中创建一个 aerospike.ini 文件,否则直接编辑 php.ini。添加以下指令

extension=aerospike.so
aerospike.udf.lua_user_path=/path/to/aerospike/usr-lua

现在 aerospike 模块应该可以通过 PHP CLI 使用

php -m | grep aerospike
aerospike

请记住,如果您使用 PHP 与 Nginx 或 Apache 一起使用,那么很可能有一个单独的 php.ini 配置文件用于 web 服务器。将您刚刚创建的 aerospike.ini 复制到 /etc/php7/apache2/conf.d//etc/php7/fpm/conf.d/ 或 web 服务器配置包含目录的任何地方,然后发出平滑重启。

许可证

Aerospike PHP 客户端在 Apache License,Version 2 的条款下提供,如 LICENSE 文件中所述。

个别文件可能在其自己的特定许可证下提供,所有许可证都与 Apache License,Version 2 兼容。请参阅个别文件以获取详细信息。