php 的 libevent / event / ev / uv 扩展

big_cat

安装挺简单的,本文的主要目的是梳理清楚这几个事件驱动库和对应的扩展之间的关系。

1、ext-event/ext-libeventlibevent wrapper,推荐 ext-evetworkerman 在用。

2、ext-evlibev wrapperlibev 要优于 libevent,最新的 reactPHP 在用哦,其实 reactPHPEventLoop,可以根据你安装的扩展选用相应的事件驱动库,可 参考。由于libevwindows 支持不够好。因此,Node.js 封装了一层libuvlibuv 是基于 windowsIOCP*nixlibev 进行封装(转载至)。

3、ext-uv 是一套 libuv wrapper,现在我了解到的有使用此扩展的组件有 react/mysqlreactPHPasync mysql client,扩展依赖 libuv libuv-devel,否则可能会报错:

error: wrong uv library version or library not found

相关了解

libevent库 -- ext-event php5.4+ 或 ext-libevent php5.6-
libev库 -- ext-ev php5.4+
libuv库 -- ext-uv php7.0+

1、安装 lib
yum 安装

yum install libuv libuv-devel
yum install libev libev-devel
yum install libevent libevent-devel

编译安装

git clone git@github.com:libuv/libuv.git
cd libuv
./autogen.sh
./configure
make && make install
# libev libevent 的编译安装我就不给出了 都理解

2、安装 ext

# uv 现在还没有 stable 版本 所以这里制定 beta 版本号
pecl install uv-0.2.4
pecl install ev
pecl install event
#pecl install libevent

3、启用扩展

echo extension=event.so >> /your/php.ini
echo extension=ev.so >> /your/php.ini
echo extension=uv.so >> /your/php.ini
php -m
阅读 571

规范至上

1.4k 声望
75 粉丝
0 条评论
你知道吗?

规范至上

1.4k 声望
75 粉丝
宣传栏