我们知道Protocol Buffers是Google定义的一种跨语言、跨平台、可扩展的数据传输及存储的协议,因为将字段协议分别放在传输两端,传输数据中只包含数据本身,不需要包含字段说明,所以传输数据量小,解析效率高。感兴趣的可以访问 https://developers.google.com/protocol-buffers/docs/overview 。Protocol Buffers官方只支持C++, Java, Python, C#, Go,如果想在PHP中使用Protocol Buffers,需要借助于第三方的扩展,安装方法如下。
下载资源压缩包 https://github.com/allegro/php-protobuf/
步骤如下:
1、上传到服务器,解压,进入解压后的目录
[[email protected] ~]# unzip php-protobuf-master.zip
[[email protected] ~]# cd php-protobuf-master
2、执行phpize
[[email protected] php-protobuf-master]# /soft/php/bin/phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
3、编译、make安装
[[email protected] php-protobuf-master]# ./configure --with-php-config=/soft/php/bin/php-config
[[email protected] php-protobuf-master]# make
[[email protected] php-protobuf-master]# make install
Installing shared extensions: /soft/php/lib/php/extensions/no-debug-non-zts-20090626/
安装之后在目录生成扩展文件
[[email protected] php-protobuf-master]# ll /soft/php/lib/php/extensions/no-debug-non-zts-20090626/
-rwxr-xr-x. 1 root root 130247 3?. 8 11:19 protobuf.so
编辑php.ini文件,添加一行
[[email protected] php-protobuf-master]# vi /soft/php/lib/php.ini
[memcache]
extension_dir = "/soft/php/lib/php/extensions/no-debug-non-zts-20090626/"
extension = "redis.so"
extension = "protobuf.so"
保存退出后重启php,之后打开浏览器查看 phpinfo.php 有protobuf 模块,说明安装成功;