在更新protolib和protoc后,gRPC不再起作用了

时间:2017-12-12 12:45:07

标签: php grpc protoc

昨天我的ubuntu进行了更新(来自日志) 用于PHP的Grpc

  

命令行:aptdaemon role ='role-commit-packages'deler =':1.567'   升级:libprotoc-dev:amd64(3.5.0-0~maarten0 + artful,   3.5.0.1-0~maarten0 + artful),libprotoc15:amd64(3.5.0-0~maarten0 + artful,3.5.0.1-0~maarten0 + artful),   gnome-software-plugin-snap:amd64(3.26.1-0ubuntu2,   3.26.1-0ubuntu2.17.10.1),gnome-software:amd64(3.26.1-0ubuntu2,3.26.1-0ubuntu2.17.10.1),google-chrome-stable:amd64(62.0.3202.94-1,63.0。 3239.84-1),protobuf-compiler:amd64(3.5.0-0~maarten0 + artful,3.5.0.1-0~maarten0 + artful),ubuntu-software:amd64(3.26.1-0ubuntu2,3.26.1-0ubuntu2。 17.10.1),libprotobuf-lite15:amd64(3.5.0-0~maarten0 + artful,3.5.0.1-0~maarten0 + artful),   gnome-software-plugin-flatpak:amd64(3.26.1-0ubuntu2,   3.26.1-0ubuntu2.17.10.1),libprotobuf15:amd64(3.5.0-0~maarten0 + artful,3.5.0.1-0~maarten0 + artful),   libprotobuf-dev:amd64(3.5.0-0~maarten0 + artful,   3.5.0.1-0~maarten0 + artful),gnome-software-common:amd64(3.26.1-0ubuntu2,3.26.1-0ubuntu2.17.10.1)

当重新启动时我无法发出任何Grpc请求我在我的php.ini文件中有extension = grpc.so并且昨天同样的代码工作,我也尝试在我的composer文件中更新它,也尝试重新安装Grpc以及从我的proto文件重新创建类。由于某种原因,它将不再起作用。

我总是得到相同的回应

  

消息:“未找到类'Grpc \ ChannelCredentials'”

任何想法如何解决(或出了什么问题)?

编辑:我使用docker作为本地服务器 - 现在可能有2个不同的版本冲突吗?

2 个答案:

答案 0 :(得分:1)

这真的很奇怪,因为基于你的日志,只有protobuf从3.5.0升级到3.5.0.1和gnome-software升级。看来他们不会打破grpc。我安装了这些软件包,然后通过“sudo pecl install grpc(protobuf)”安装了grpc-1.7.0和protobuf-3.5.0.1,但它们运行良好。

错误“Class'Grpc \ ChannelCredentials'未找到”很可能意味着未正确加载grpc.so扩展名。我们应该找到问题所在。你可以尝试

答案 1 :(得分:0)

以防有人遇到类似问题 解决我的问题是在docker里面。无论出于何种原因,我的grpc安装都丢失了

我通过连接到docker bash并使用

再次安装grpc来修复它
  

pecl install grpc

和我的php.ini文件中的readded extensions = grpc.so

编辑:每次我在docker-compose.yaml中更改antyhing时都会出现同样的问题