php7 如何安装扩展 protobuf ?

在centos 7 中,如何安装 PHP7 的扩展 protobuf?

我现在在我的服务器上安装 php 的 protobuf 安装不成功!

我使用的扩展是 https://github.com/allegro/ph...

在编译安装的时候 phpize 和 ./configure 都过了,但是到了 make 的时候就报错!

部分错误如下:

/home/lvyun/php-protobuf/protobuf.c: In function ?.b_parse_field_value
/home/lvyun/php-protobuf/protobuf.c:1004:20: error: lvalue required as leof assignment
    Z_TYPE_P(value) = IS_DOUBLE;
                    ^
/home/lvyun/php-protobuf/protobuf.c:1009:20: error: lvalue required as leof assignment
    Z_TYPE_P(value) = IS_LONG;
                    ^
/home/lvyun/php-protobuf/protobuf.c:1014:20: error: lvalue required as leof assignment
    Z_TYPE_P(value) = IS_LONG;
                    ^
/home/lvyun/php-protobuf/protobuf.c:1019:20: error: lvalue required as leof assignment
    Z_TYPE_P(value) = IS_DOUBLE;
                    ^
/home/lvyun/php-protobuf/protobuf.c:1024:20: error: lvalue required as leof assignment
    Z_TYPE_P(value) = IS_LONG;
                    ^
/home/lvyun/php-protobuf/protobuf.c:1029:22: error: ?.S_BOOL?.undeclause in this function)
    Z_TYPE_P(value) = IS_BOOL;
                      ^
/home/lvyun/php-protobuf/protobuf.c:1034:20: error: lvalue required as leof assignment
    Z_TYPE_P(value) = IS_LONG;

求教,这是什么原因?是 扩展的版本没有跟上吗?还是因为有什么依赖没有安装?

如果这个扩展包不能安装在 php7 上,那还有什么扩展可以安装?

阅读 9.8k
3 个回答

Linux上编译

pecl install protobuf 安装的最新版本

然后按照提示加入到php.ini就可以了,前提是安装了php-pear php-devel

不用编译

如果编译出现了麻烦,可以直接composer require google/protobuf,这个拥有和扩展文件相同的类和方法

不过效率肯定没扩展那么高了,在Windows的集成环境中值得一用。

因为Windows下也有protoc的工具(下载protoc-3.X.X-win32.zip),所以本地编译proto文件,以及调试就无需那么麻烦。

源代码:https://github.com/google/pro...

推荐问题
宣传栏