基础环境: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包安装法:
# rpm -Uvh glibc-*
升级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
3.10.10
# node -v
v6.14.2
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
# 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搭建完成
mark
Hi there! Do you use Twitter? I’d like to follow
you if that would be okay. I’m absolutely enjoying your blog and
look forward to new posts.
I seriously love your site.. Pleasant colors & theme.
Did you build this amazing site yourself? Please reply back as I’m
attempting to create my own personal site and would like to learn where you got this from or what the theme is named.
Cheers!
Can you tell us more about this? I’d care to find out
more details.