文档章节

php安装 protobuf2.6.1扩展

goodman_fz
 goodman_fz
发布于 2018/12/26 11:28
字数 604
阅读 449
收藏 1

首次实际项目中用到protobuf,找了下资料,弄了下环境并跑通,做下记录以免忘记

由于对接方使用的是proto2.4版本,所以也只能使用版本2的了。注意下,大版本间似乎是不支持的,我们试过安装版本3,但跟第三方用的版本2死活参数不匹配。(版本2官方没有提供php支持源码,所以找的是第三方支持的源码。版本3的官方已经提供了对php支持源码。)

--------protobuf是什么--------

官方解释:

What are protocol buffers?

Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages.

--------安装--------

1、protobuf安装:

编译源码地址 -- https://github.com/protocolbuffers/protobuf/releases?after=v3.0.0-alpha-1

wget https://github.com/protocolbuffers/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz

tar zxvf protobuf-2.6.1.tar.gz

cd protobuf-2.6.1

./configure --prefix=/usr/local/protobuf

make && make install

#export PATH=/usr/local/protobuf/bin:$PATH //按默认的可不执行

//验证是否安装ok,显示相应版本号
protoc --version

2、php的protobuf扩展安装:

wget https://github.com/allegro/php-protobuf/archive/master.zip
 
unzip master.zip
 
cd php-protobuf-master
 
#yum install php-devel(安装依赖--可跳过)
 
phpize
 
./configure --with-php-config=/usr/local/php/bin/php-config 
 
make && make install
 
//将在/your folder/php-protobuf-master/module/目录下生成protobuf.so文件
//然后在php.ini里面加一下extension = "protobuf.so",再重启php与nginx即可。

3、composer--为了后面可以执行.proto文件自动生成代码

//进入到php-protobuf-master目录
cd /your folder/php-protobuf-master

curl -s http://getcomposer.org/installer | php

php composer.phar install

--------protobuf使用--------

编译生成代码(一个message结构会生成一个包装类)

php ./php-protobuf-master/protoc-gen-php.php test_km.proto
//将会生成代码目录结构:/xxx/xxx/*

将生成的代码完整拷贝到自己的项目中

代码中类会继承ProtobufMessage类,它是protobuf.so中自动加载

------------------------------------------

这样就可以在项目里使用protobuf进行序列化/反序列化操作了

附:

protocol buffers官方:https://developers.google.com/protocol-buffers/?hl=zh-cn

protobuf github:https://github.com/protocolbuffers/protobuf

© 著作权归作者所有

goodman_fz
粉丝 14
博文 21
码字总数 18430
作品 0
福州
项目经理
私信 提问
linux(centos)下安装PHP的PDO扩展

PHP 数据对象PDO扩展为PHP访问数据库定义了一个轻量级的一致接口。PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。最近在我们的...

it1000001001
2017/07/31
170
0
CentOS 配置PHP支持socket扩展

PHP有很多扩展功能,我们在初次安装的时候并没有安装某些扩展,可能在使用的过程中,又需要用到这些扩展。php提供了一个phpize工具供我们安装需要的扩展。 下面以安装socket扩展来介绍phpiz...

woshiluo
2017/09/04
0
0
Debian5 安装mongodb 以及php的mongodb扩展

debian5 安装mongodb已经相关的php扩展 1 安装编译环境 apt-get install build-essential 2 安装相关头文件 apt-get install libc6-dev 3 在使用php时会发现在当初编译时没有把某个模块编译进...

China_OS
2012/05/28
338
0
在linux系统中利用phpize脚本安装php扩展模块

php安装成功后,在bin目录下会生成一个名叫phpize的可执行脚本,这个脚本的用途是动态安装php扩展模块。 利用phpize脚本安装php扩展模块的好处是在安装php时没有安装的扩展可以再以后随时安装...

jingwul
2012/03/14
0
0
docker php-fpm 拓展安装

PHP 源码 为了保证 Docker 镜像尽量小,PHP 的源文件是以压缩包的形式存在镜像中,官方提供了 docker-php-source 快捷脚本,用于对源文件压缩包的解压(extract)及解压后的文件进行删除(d...

Jack088
01/28
125
0

没有更多内容

加载失败,请刷新页面

加载更多

cpu load过高问题排查

load average的概念 top命令中load average显示的是最近1分钟、5分钟和15分钟的系统平均负载。 系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程...

mskk
今天
6
0
用spring boot 实现websocket

import java.io.IOException;import javax.websocket.OnClose;import javax.websocket.OnError;import javax.websocket.OnMessage;import javax.websocket.OnOpen;import java......

jingshishengxu
今天
4
0
shell介绍,命令历史,命令补全和别名,通配符,输入输出重定向,管道符和作业控制

shell介绍 可以使用 yum list |grep zsh 或者 yum list |grep ksh 这样可以搜索 zsh 和 ksh ,有需要的话可以安装 总之,默认使用的就是 .bash shell 命令历史 输入过的命令会被保存在一个文...

doomcat
今天
7
0
1995年的资深工程师,和你谈谈如何进阶

1995年的资深工程师,和你谈谈如何进阶 自我介绍 网络ID:杭城小刘,城市:顾名思义,人在杭州。1995年出生,本科毕业,现在是一名 iOS 资深工程师,年薪 35w。兴趣爱好广泛:乒乓球、美食、...

杭城小刘
今天
10
0
Kafka 面试题

1.Kafka中的ISR、AR代表什么? ISR:与leader保持同步的follower集合 AR:分区的所有副本 2.Kafka中的HW、LEO分别代表什么? LEO:每个副本的最后条消息的offset HW:一个分区中所有副本最小...

djm猿
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部