基础环境:CentOS6.9,php 5.6.36
在CentOS 6.x里面,首先要解决的是GCC版本过低、GLIBC版本过低和Node.js版本过低的问题
本文章内对于编译安装的路径进程处理,请注意路径问题,不要被我带跑偏了
升级GCC版本
# gcc -v
可以看到gcc的版本号是4.4.7
# vim /etc/yum.repos.d/devtools-2.repo
[testing-devtools-2-centos-$releasever]
name=testing 2 devtools for CentOS $releasever
baseurl=http://people.centos.org/tru/devtools-2/$releasever/$basearch/RPMS
gpgcheck=0
# yum install devtoolset-2-gcc-4.8.2 devtoolset-2-gcc-c++-4.8.2 devtoolset-2-binutils devtoolset-2-gcc-gfortran
# ln -s /opt/rh/devtoolset-2/root/usr/bin/* /usr/local/bin/
# hash -r # 这一步很重要
可以看到GCC版本已经升级为4.8.2
升级GLIBC版本
两种方法:编译安装法和rpm包安装法
编译安装法:
查看当前glibc版本
编译法升级到2.14即可
# tar zxvf glibc-2.14.tar.gz
# mkdir glibc-build-2.14
# cd glibc-build-2.14/
# ../glibc-2.14/configure –prefix=/src/glibc-2.14/
# make && make install
# cp /src/glibc-2.14/lib/libc.so.6 /lib64/libc-2.14.so
# rm -rf /lib64/libc.so.6 && LD_PRELOAD=/lib64/libc-2.14.so ln -s /lib64/libc-2.14.so /lib64/libc.so.6
# 这一步至关重要,稍有不慎即系统崩溃,所以操作的时候需要谨慎谨慎再谨慎
rpm包安装法:
升级Node.js版本
选择CentOS 7.5内默认的nodejs版本6.14.2
# tar zxf node-v6.14.2-linux-x64.tar.gz
# mv node-v6.14.2-linux-x64 node
# cd node/bin
# vim /etc/profile
export PATH=$PATH:/node/bin
# source /etc/profile
# npm -v
3.10.10
# node -v
v6.14.2
以上,就解决了环境问题,剩下的就按照官网文档即可
官方文档:https://grpc.io/docs/quickstart/php.html
以下操作就按照官方文档有选择的来操作
使用gRPC C核心库构建源代码
# git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc
# cd grpc
# git submodule update –init
# make && make install
构建并安装gRPC PHP扩展
# cd src/php/ext/grpc/
# phpize
# ./configure && make && make install
# vim /php/etc/php.ini
extension=grpc.so
安装Composer
# curl -sS https://getcomposer.org/installer | php
# mv composer.phar /usr/local/bin/composer
安装protoc
# mkdir protoc
# mv protoc-3.5.1-linux-x86_64.zip protoc
# cd protoc/
# unzip -e protoc-3.5.1-linux-x86_64.zip
# cd bin/
# pwd
/protoc/bin
# vim /etc/profile
export PATH=$PATH:/php/bin:/protoc/bin
# source /etc/profile
安装protobuf
# pecl install protobuf
# vim /php/etc/php.ini
extension=protobuf.so
安装PHP Protoc插件
# cd /grpc
# git submodule update –init
# make grpc_php_plugin
# cd examples/php/
# ./greeter_proto_gen.sh
# composer install
运行gRPC
# cd /grpc/examples/node
# npm install
如上图最后会有两个警告,暂时无视之
# cd dynamic_codegen/
# node greeter_server.js
如果没有报错,那么nodejs服务端就启动起来了
另起一个终端
# cd /grpc/examples/php/
# ./run_greeter_client.sh
自此,gRPC搭建完成