热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

grpc服务端php配置,mac环境下安装grpc的PHP客户端

前言自己本地环境原本有个PHP7.1的版本,结果在装grpc时一直提示没有权限把grpc.so拷贝到PHP扩展目录下,就重新装了一次php此次安装涉及的

前言

自己本地环境原本有个PHP7.1的版本,结果在装grpc时一直提示没有权限把grpc.so拷贝到PHP扩展目录下,就重新装了一次php

此次安装涉及的有:

PHP

composer

pecl

grpc

php的grpc扩展

protobuf

php的protoc插件

安装

1.覆盖原来的php

# 安装PHP

brew intall php

# 优先使用新安装的PHP7.2,即配置环境变量,这一步要注意自己的PHP目录,以下是我的目录

# 我的shell使用的是zsh,所以导入到~/.zshrc下,要注意自己的shell是什么,导入到自己使用的shell配置文件里

echo 'export PATH="/usr/local/opt/php@7.2/bin:$PATH"' >> ~/.zshrc

echo 'export PATH="/usr/local/opt/php@7.2/sbin:$PATH"' >> ~/.zshrc

# 使用配置文件,使其生效

source ~/.zshrc

# 查看PHP的版本是否是自己安装的

php -v

php-fpm -v

2.安装grpc及其扩展

安装grpc

brew install grpc

安装PHP的grpc扩展

git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc

cd grpc

git submodule update --init

make

sudo make install

#这一步我本地报错找不到autolocal,查后需要安装automake,用brew install automake即可

cd grpc/src/php/ext/grpc

phpize

./configure

make

sudo make install

以上都OK的话,在phpinfo里应该可以看到grpc的信息了

3.安装protobuf

pecl install protobuf

安装成功后,phpinfo里会有protobuf的信息.

4.demo

下载example

$ # Clone the repository to get the example code:

$ git clone -b v1.24.0 https://github.com/grpc/grpc

$ # Build grpc_php_plugin to generate proto files if not build before

$ cd grpc && git submodule update --init && make grpc_php_plugin

$ # Navigate to the "hello, world" PHP example:

$ cd examples/php

$ ./greeter_proto_gen.sh

$ composer install

我本地跑的是go的grpc服务端,所以不安装服务端了。demo里是用node做服务端。如下:

$ npm install

$ cd dynamic_codegen

$ node greeter_server.js

运行PHP的客户端:

$ ./run_greeter_client.sh

没问题的话,在服务端会显示:

$ 2019/10/18 16:03:50 Received: world

参考链接:

https://grpc.io/docs/quickstart/php/

go安装grpc链接



推荐阅读
  • 本文介绍了如何使用vue-awesome-swiper组件,包括在main.js中引入和使用swiper和swiperSlide组件,以及设置options和ref属性。同时还介绍了如何在模板中使用swiper和swiperSlide组件,并展示了如何通过循环渲染swipes数组中的数据,并使用picUrl属性显示图片。最后还介绍了如何添加分页器。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • docker安装到基本使用
    记录docker概念,安装及入门日常使用Docker安装查看官方文档,在"Debian上安装Docker",其他平台在"这里查 ... [详细]
  • linux下编译安装lnmp
    2019独角兽企业重金招聘Python工程师标准#######################安装依赖#####################安装必要的包:y ... [详细]
  • nvm如何改node默认版本
    小编给大家分享一下nvm如何改node默认版本,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!nvm改node默认版 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • 本文介绍了在Go语言中可见性与scope的规则,包括在函数内外声明的可见性、命名规范和命名风格,以及变量声明和短变量声明的语法。同时,还介绍了变量的生命周期,包括包级别变量和局部变量的生命周期,以及变量在堆和栈上分配的规则和逃逸分析的概念。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
  • 交换机配置:intg100unshintvlani1ipadd192.168.56.177qstelseuser-iv4authaaaproinsshupl3qsshuserpyt ... [详细]
  • NFS文件共享系统
    1、概述:NFS(NetworkFileSystem)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享 ... [详细]
author-avatar
Sunshine丶米粉_499
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有