PHP-Protobuf的编译

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前只提供了 C++、Java、Python 三种语言的 API。通过PHP-protobuf可实现,下面是本人的安装经历。

1.centos环境
centos6.8
2.php环境
php-5.5.30
路径
/usr/local/php-5.5.30
将protobuf和php-protobuf-master安装在/usr/local下。

apache

/usr/local/httpd

3.依赖包安装
yum -y install php-pear php5-dev autoconf automake libtool make gcc gcc-c++

4.安装protobuf
protobuf-2.4.1.tar.gz
wget http://protobuf.googlecode.com/files/protobuf-2.4.1.tar.bz2
tar -jxvf protobuf-2.4.1.tar.bz2
cd protobuf-2.4.1/
./configure --with-php-config=/usr/local/php-5.5.30/bin/php-config
make
make install

5.master安装
master.zip
wget https://github.com/allegro/php-protobuf/archive/master.zip
unzip master.zip
cd php-protobuf-master
/usr/local/php/bin/phpize #生成configure
./configure
make
make install
结果显示 /usrb64/php/modules/表示安装成功

ll  /usrb64/php/modules/

vi /usr/local/php/etc/php.ini

添加:

extension=/usr/lib64/php/modules/protobuf.so

重启apache  service httpd restart

6.执行语句验证结果

在本文件路径下透出test.proto,vitest.proto内容如下:

----------------------------------------------
message PhoneNumber {
required string number = 1;
required int32 type = 2;
}

message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
repeated PhoneNumber phone = 4;
optional double money = 5;
}

message AddressBook {
repeated Person person = 1;
}

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

protoc --plugin=/usr/local/php/bin/protoc-gen-php --php_out=. -I. tes1t.proto
生成test.php文件即表示成功。

参照连接地址:

http://www.hello1010.com/php-protobuf

http://www.cnblogs.com/brookin/p/4423692.html

http://www.cnblogs.com/taek/p/5470693.html

时间: 2024-08-27 02:19:08

PHP-Protobuf的编译的相关文章

google protobuf的编译成jar包

google protobuf的编译成jar包 编译的方法:最后使用的github中这个里面的README的最后一个方法.在非MAVEN的环境下,应该怎么去编译library呢? 使用下面的命令: $ protoc –java_out=src/main/java -I../src \ ../src/google/protobuf/descriptor.proto 我的资源是用 这里的source去编译的 最后执行完是很多.class文件,然后对.class进行打包咯 jar -cvf -c 包路

linux下编译protobuf(可以编译成pb.go)

参考 :https://blog.csdn.net/xiexievv/article/details/47396725 下载代码  : git clone https://github.com/google/protobuf 进入目录 : cd prootbuf ./autogen.sh      $ ./configure  --prefix=<安装路径>      $ make  $ make check $ make install 到此步还没有安装完毕,在用户目录 ~/.bash_pr

编译protobuf的jar文件

1.准备工作 需要到github上下载相应的文件,地址https://github.com/google/protobuf/releases protobuf有很多不同语言的版本,因为我们需要的是jar文件,所以选择java版本下载.以下以版本3.1.0进行举例说明. 如果是在linux64环境下编译,可以选择以下两个文件,第一个相当于java发行版本的源码文件,第二个是一个编译好的protoc程序文件(如果想自己编译protobuf程序文件,参考上篇文章protobuf的编译安装). prot

Protobuf 在Ubuntu 14上的编译与使用

前言 一直知道Google开源的一个与语言无关的数据交换协议:protobuf.只知道是一种不同于json和XML的格式,还有就是性能特别的好(这在Java和C++的实现确实是!) 最近闲下来看了下Google的Protobuf的相关东西,然而baidu出来的东西很多都过时了,我不得不花些时间来倒腾,于是就有了如下的内容. 下载源代码与准备工作 $ sudo apt-get install autoconf automake libtool curl$ git clone https://git

vc2015编译protobuf

下载地址:https://github.com/google/protobuf 1.编译通过cmake生成sln文件来编译用cmd命令 cd 到3.0.0-beta-4\cmake mkdir build & cd build mkdir solutionx86 & cd solutionx86 cmake -G "Visual Studio 14 2015" -DCMAKE_INSTALL_PREFIX=../../../../install ../.. -Dprot

Protocol Buffers(Protobuf) 官方文档--Protobuf语言指南

Protocol Buffers(Protobuf) 官方文档--Protobuf语言指南 约定:为方便书写,ProtocolBuffers在下文中将已Protobuf代替. 本指南将向您描述如何使用protobuf定义i结构化Protobuf数据,包括.proto文件语法和如何使用.proto文件生成数据存取类. 作为一个参考指南,本文档将以示例的形式一步步向您介绍Protobuf的特点.您可以参考您所选择的语言的示例.tutorial ----------------------------

CentOS6.4编译Hadoop-2.4.0

因为搭建Hadoop环境的时候,所用的系统镜像是emi-centos-6.4-x86_64,是64位的,而hadoop是默认是32的安装包.这导致我们很多操作都会遇到这个问题(Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /opt/hadoop-2.4.0/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM w

CentOS-64bit编译Hadoop-2.5.源代码,并进行分布式安装

摘要 CentOS7-64bit 编译 Hadoop-2.5.0,并分布式安装 目录 1.系统环境说明 2.安装前的准备工作 2.1 关闭防火墙 2.2 检查ssh安装情况,如果没有则安装ssh 2.3 安装vim 2.4 设置静态ip地址 2.5 修改host名称 2.6 创建hadoop用户 2.7 配置ssh无密钥登录 3.安装必须的软件 3.1 安装JDK ##################################### [100%] #####################

protobuf入门

protobuf全称Protocol Buffers,是google推出的一种高效,快捷的数据交换格式,和XML,Thrift一样,都是一种数据交换协议(当然thrift还提供rpc的功能).protobuf相对与xml结构化的文本数据格式,它是一种二进制的数据格式,具有更高的传输,打包和解包效率,这也是为什么protobuf很受欢迎的原因. protobuf通过自己的编译器,对协议文件进行编译,生成对应语言的代码,方便的进行数据的打包和解包.目前,google 提供了三种语言的实现:java.

protobuf 作为配置文件

公司每个project代码中,都有一个Config类,作为模块启动的配置.其实现如下 struct Config { int num; char * file_name; int load_from_file(const char* filename); } int Config::load_from_file(const char* filename) { ConfigDom dom; parse_node_from_file(&dom, filename); get_value("n