$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc $ yum install gcc perl-ExtUtils-MakeMaker $ yum remove git (如果之前有默认安装了git,请移除) $ cd /tmp/ $ wget https://www.kernel.org/pub/software/scm/git/git-2.1.2.tar.gz $ tar -zxvf git-2.1.2.tar.gz $ cd git-2.1.2 $ make -j8 configure $ ./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv $ make -j8all doc $ sudo make install install-doc install-html
检查是否安装成功:
/usr/local/git/bin/git --version
安装成功后,将git可执行文件copy或者软链到 /usr/bin /usr/local/bin 两个目录下 如果安装过程中提示libiconv不存在,请先安装libiconv,然后再make clean, make && sudo make install:
$ cd /tmp $ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz $ tar -zxvf libiconv-1.14.tar.gz $ cd libiconv-1.14 $ ./configure --prefix=/usr/local/libiconv $ make -j8 && sudo make install
php grpc extension安装
grpc依赖的c library安装完成后,安装php grpc扩展
$ cd /usr/local/grpc/src/php/ext/grpc $ phpize (若提示命令不存在,请全路径执行,即/usr/local/php/bin/phpize,取决于服务器php的安装路径) $ ./configure --with-php-config=/usr/local/php/bin/php-config (php-config路径) $ make -j8 $ sudo make install $ vim php.ini 加入extension=grpc.so
注: 命令行执行php文件提示Warning: insecure environment read function getenv used,请修改c文件/tmp/grpc/src/core/lib/support/env_linux.c 注释掉相关的gpr_log,然后重新进入grpc目录更新c library,即make clean然后make && sudo make install
protoc 编译器安装
$ cd /tmp $ wget https://github.com/google/protobuf/releases/download/v3.2.0/protobuf-php-3.2.0.tar.gz $ tar -zxvf protobuf-php-3.2.0.tar.gz $ cd protobuf-php-3.2.0 $ ./configure --prefix=/usr/local/protobuf $ make -j8 $ sudo make install
/lib64/libstdc++.so.x: version: `GLIBCXX_X.X.XX’ not found 提示你cmake时libstdc++.so.x中缺少GLIBCXX_X.X.XX或更高版本 解决办法: (这libstdc++.so.x中的x根据是数字)