安装挺简单的,本文的主要目的是梳理清楚这几个事件驱动库和对应的扩展之间的关系。php
一、ext-event/ext-libevent
是 libevent wrapper
,推荐 ext-evet
,workerman
在用。mysql
二、ext-ev
是 libev wrapper
,libev
要优于 libevent
,最新的 reactPHP
在用哦,其实 reactPHP
有 EventLoop
,能够根据你安装的扩展选用相应的事件驱动库,可 参考。因为libev
对 windows
支持不够好。所以,Node.js
封装了一层libuv
。libuv
是基于 windows
的 IOCP
和 *nix
的 libev
进行封装(转载至)。react
三、ext-uv
是一套 libuv wrapper
,如今我了解到的有使用此扩展的组件有 react/mysql
, reactPHP
的 async mysql client
,扩展依赖 libuv libuv-devel
,不然可能会报错:git
error: wrong uv library version or library not found
相关了解github
libevent库
--ext-event php5.4+ 或 ext-libevent php5.6-
libev库
--ext-ev
php5.4+
libuv库
--ext-uv
php7.0+
一、安装 lib
库 yum
安装sql
yum install libuv libuv-devel yum install libev libev-devel yum install libevent libevent-devel
编译安装windows
git clone git@github.com:libuv/libuv.git cd libuv ./autogen.sh ./configure make && make install # libev libevent 的编译安装我就不给出了 都理解
二、安装 ext
php7
# uv 如今尚未 stable 版本 因此这里制定 beta 版本号 pecl install uv-0.2.4 pecl install ev pecl install event #pecl install libevent
三、启用扩展app
echo extension=event.so >> /your/php.ini echo extension=ev.so >> /your/php.ini echo extension=uv.so >> /your/php.ini php -m