//开始之前我们说一下我遇到的坑,我自己安装了php7.3,系统自带了php7.0;我为pjp7.3安装扩展,但是操作的时候老是访问系统自带的php7.0,后来我把系统自带的php7.0的可执行文件(php phpize php-config)重命名了(保证全部使用我自己安装的,我宁愿出现可执行文件找不到也不能混用)。
下载地址:https://phar.phpunit.de/
安装
wget https://phar.phpunit.de/phpunit-7.5.1.phar chmod +x phpunit-7.5.1.phar sudo cp phpunit-7.5.1.phar /usr/local/bin/phpunit
git clone https://github.com/grpc/grpc.git cd grpc git submodule update --init //git pull --recurse-submodules && git submodule update --init --recursive make sudo make install # make install 会在 /usr/local/bin 目录下生成以下文件 #grpc_cpp_plugin #grpc_csharp_plugin #grpc_node_plugin #grpc_objective_c_plugin #grpc_php_plugin #grpc_python_plugin #grpc_ruby_plugin #protobuf文件生成各种语言的插件
https://github.com/google/protobuf/releases
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protoc-3.6.1-linux-x86_64.zip unzip /protoc-3.6.1-linux-x86_64 sudo cp bin/protoc /usr/local/bin protoc --version
wget http://pecl.php.net/get/grpc-1.17.0RC3.tgz tar zxvf grpc-1.17.0RC3.tgz cd grpc-1.17.0RC3 phpize ./configure --with-php-config=/usr/local/php/bin/php-config make sudo make install sudo vim /usr/local/php/etc/php.ini //添加extension=grpc php -m //查看扩展是否安装成功
wget https://github.com/allegro/php-protobuf/archive/master.zip unzip master.zip cd php-protobuf-master sudo apt-get install php-dev(安装依赖) phpize ./configure --with-php-config=/usr/local/php/bin/php-config make &&sudo make install //然后在php.ini里面加一下extension = "protobuf.so",再重启php与nginx即可。
cd /path/to/you/../php-protobuf-master (存放php-protobuf-master的文件夹) curl -s http://getcomposer.org/installer | php php composer.phar install
https://blog.csdn.net/u011957758/article/details/52455231
//源码:https://github.com/grpc/grpc //我们以grpc给的php例子-helloworld为例 cd grpc/examples/python/helloworld python greeter_server.py //常驻服务 python greeter_client.py //打印Greeter client received: Hello, you!说明服务正常 //这里测试php服务端 cd grpc/examples/php //下载php client需要的vendor目录 curl -s http://getcomposer.org/installer | php php composer.phar install //将实例中的helloworld.proto拷贝到当前目录 cp grpc/examples/protos/helloworld.proto . //这是编译proto文件的指令 生成GPBMetadata Helloworld目录 protoc --proto_path=./ --php_out=./ --grpc_out=./ --plugin=protoc-gen-grpc=/usr/local/bin/grpc_php_plugin ./helloworld.proto //其实你可以不用拷贝helloworld.proto ,直接使用绝对路径也行,我是为了看着直观, //实际项目中proto文件是单独管理的一套代码,大家引用他而已。 //此时就可以运行客户端了 php greeter_client.php //打印Hello, world!即为成功,服务使用python的。 //到这里说明我们的php已经搭建完grpc的配置了,就可以编写php grpc客户端了。
--备注
//sudo apt-get install libc-ares-dev
wget http://pecl.php.net/get/protobuf-3.6.1.tgz tar zxvf protobuf-3.6.1.tgz cd protobuf-3.6.1 phpize ./configure --with-php-config=/usr/local/php/bin/php-config make sudo make install sudo vim /usr/local/php/etc/php.ini //添加extension=protobuf php -m //查看扩展是否安装成功
安装probuf扩展
php -m
Segmentation fault (core dumped)
https://my.oschina.net/laixhe/blog/1476644
$ git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc $ cd grpc $ git pull --recurse-submodules && git submodule update --init --recursive $ make $ sudo make install # make install 会在 /usr/local/bin 目录下生成以下文件 #grpc_cpp_plugin #grpc_csharp_plugin #grpc_node_plugin #grpc_objective_c_plugin #grpc_php_plugin #grpc_python_plugin #grpc_ruby_plugin #protobuf文件生成各种语言的插件 #protobuf 编译模块安装 protoc $ git clone https://github.com/google/protobuf.git $ cd protobuf $ ./configure $ sudo make $ sudo make install #会生成 /usr/local/bin/protoc 可执行文件 #安装gRPC PHP拓展 #方法一 $ cd grpc/src/php/ext/grpc $ phpize $ ./configure $ make $ sudo make install #别忘记在php.ini 文件中加入 extension_dir = "$PHP_PATH/lib/php/extensions/debug-zts-20131226/" extension = grpc.so #方法2 $ sudo pecl install grpc #别忘记在php.ini 文件中加入 extension_dir = "$PHP_PATH/lib/php/extensions/debug-zts-20131226/" extension = grpc.so #安装protobuf 依赖按住 #方法1 C依赖模块 $ pecl install protobuf #方法2 PHP 依赖模块 需要安装 composer $ composer require google/protobuf #安装依赖包 $ composer require grpc/grpc
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。