PHP

一个出色的轻量级RPC工具Yar 2.0的安装

字号+ 编辑: 种花家 修订: 科学鼠辈 来源: 惠新宸 2023-09-12 我要说两句(1)

本文简述如何利用pecl安装Yar 2.0, 也可以通过本站其他有关yar的文章安装适合php5.x的yar 1.2

注意: 本文的安装方法适合php7.0以上的版本, 如果想查看php5.x版本yar的安装, 请点击移步本站另一篇手动安装方法


体验RPC框架Yar需要三步

  1. 装二进制打包协议msgpack

  2. 装yar拓展和依赖

  3. 写demo测试

安装PHP拓展包有很多种方式,当然没什么是比pecl更加来得暴力,用这个之前要确认phpize是否存在

find / -name phpize

如果phpize不存在

yum install php-devel

如果pecl没安装, 先进入到php的执行文件目录

curl -o go-pear.php  http://pear.php.net/go-pear
./php go-pear.php
# 看到一堆提示, 直接回车即可

安装msgpack

pecl install msgpack

提示如下错误:

Failed to download pecl/msgpack within preferred state "stable", latest release is 
version 0.5.6, stability "beta", use "channel://pecl.php.net/msgpack-0.5.7" to install

那么就按照提示

pecl install channel://pecl.php.net/msgpack-0.5.7

安装跳了一大堆编译过程过程,省略ING
只关心后几行

Build process completed successfully
Installing '/usr/include/php/ext/msgpack/php_msgpack.h'Installing '/usr/lib64/php/modules/msgpack.so'install ok: channel://pecl.php.net/msgpack-0.5.6configuration option "php_ini" is not set to php.ini locationYou should add "extension=msgpack.so" to php.ini
# 命令行下输入
vi /etc/php.ini
# 以下是配置文件内容
extension=msgpack.so

保存退出。

OK,msgpack装好了

安装Yar

可以使用pecl命令自动安装yar:

pecl install yar

中途会有提示你Enable Msgpack Supports
这个就是上文装的二进制打包协议。输入yes

如果很不幸,出现了

configure: error: Please reinstall the libcurl distribution - easy.h 
should be in <curl-dir>/include/curl/ERROR: `/var/tmp/yar/configure --enable-msgpack=yes' failed`

这边输入如下命令

yum -y install curl-devel

解决上处报错问题。

pecl install yar
#vi /etc/php.ini

文件添加

extension=yar.so

重启php-fpm

service php-fpm restart

重启的时候报错如下

NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/yar.so' - /usr/lib64/php/modules/yar.so:
 undefined symbol:   php_json_encode in Unknown on line 0

可以看出问题了,yar模块是依赖msgpack.so和json.so的,必须得保证msgpack.so和json.so放在yar.so前面

解决办法如下:

find / -name json.ini
mv /etc/php.d/json.ini /etc/php.d/json.ini.bak
vi /etc/php.ini

文件添加

extension=json.so
service php-fpm restart

再次重启,成功!

可以用phpinfo()函数来检查模块是否已被添加


阅完此文,您的感想如何?
  • 有用

    0

  • 没用

    0

  • 开心

    1

  • 愤怒

    0

  • 可怜

    0

1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.交流群: PHP+JS聊天群

相关课文
  • mac开发接入微信公众号接口返回报错 cURL error 56: SSLRead() return error -9806

  • pecl安装程序时报错Array and string offset access syntax with curly braces is no longer supported

  • PHP的换行符是什么

  • 由于商家传入的H5交易参数有误,该笔交易暂时无法完成,请联系商家解决

我要说说
网上宾友点评
1 楼 IP 111.192.165.181 的嘉宾 normal : 1685501720
过时的东西了,而且Yar在高并发场景下不是很稳定的