aerospike / aerospike-client-php
Aerospike PHP 客户端作为 PHP7 的 C 扩展
Requires
- php: ~7.0
This package is not auto-updated.
Last update: 2024-04-05 08:24:10 UTC
README
注意:适用于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_INC
和 AS_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 兼容。请参阅个别文件以获取详细信息。