1、更新Centos7下载源 更新之前记得备份!!! wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 参考:http://mirrors.aliyun.com/help/centos 163的源参考:http://mirrors.163.com/.help/centos.html 2、安装epel源 wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm 如果版本不一样就去这里找http://dl.fedoraproject.org/pub/epel/ rpm -ivh rpm epel-release-7-8.noarch.rpm yum clean all yum update yum makecache 3、安装PHP环境
4、安装composer curl -sS https://getcomposer.org/installer | php — –install-dir=/usr/local/bin/ mv /usr/local/bin/composer.phar /usr/local/bin/composer 5、安装protobuf yum install php-devel git clone https://github.com/allegro/php-protobuf.git cd php-protobuf yum -y install gcc yum -y install gcc-c++ yum install make phpize ./configure make && make install Installing shared extensions: /usr/lib64/php/modules/ composer install vi /etc/php.ini 最后添加 extension=protobuf.so 7、安装protoc wget https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz cd protobuf-2.6.1 ./configure make make install 输入protoc –version libprotoc 2.6.1 则安装成功 8、测试案例 touch foo.proto 写入如下内容
message Foo { required int32 bar = 1; optional string baz = 2; repeated float spam = 3; } 生成 php /root/soft/php-protobuf/protoc-gen-php.php foo.proto 编写案例test.php
setBar(1);
$foo->setBaz('two');
$foo->appendSpam(3.0);
$foo->appendSpam(4.0);
$packed = $foo->serializeToString();
$parsedFoo = new Foo();
try {
$parsedFoo->parseFromString($packed);
} catch (Exception $ex) {
die('Oops.. there is a bug in this example, ' . $ex->getMessage());
}
$parsedFoo->dump();
执行案例
php -f test.php
Foo {
1: bar => 1
2: baz => "two"
3: spam(2) =>
[0] => 3
[1] => 4
}