PHP-Protobuf的编译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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









































以上是关于PHP-Protobuf的编译的主要内容,如果未能解决你的问题,请参考以下文章

Mac安装Protobuf编译Java

protobuf 的交叉编译使用(C++)

Go工程化 - Protobuf 编译工具的安装

Ubuntu protobuf编译安装并在Qt中使用

protobuf在linux下载编译和使用

protobuf在linux下载编译和使用