文档章节

libevent php扩展安装

hanhang126
 hanhang126
发布于 2016/07/13 22:47
字数 319
阅读 38
收藏 0
  1. 下载libevent-2.0.22-stable.tar.gz 下载官网地址:http://libevent.org/

  2. 下载php扩展libevent-0.1.0.tgz 下载官网地址:http://pecl.php.net/package/libevent

  3. 安装libevent-2.0.22

tar zxvf libevent-2.0.22-stable.tar.gz
cd libevent-2.0.22-stable/
./configure --prefix=/usr/local/libevent-2.0.20-stable/
sudo make
sudo make install
  1. 安装扩展libevent-0.1.0
tar zxvf libevent-0-1.0.0.tar  
cd libevent-0.1.0  
/usr/bin/phpize    
./configure  --with-php-config=/usr/bin/php-config --with-libevent=/usr/local/libevent-2.0.22-stable
sudo make  
sudo make install  
  1. 配置php.ini
cd /etc/php5/mods-available/
sudo touch libevent.ini
sudo vi libevent.ini  (输入extension=libevent.so保存)
cd /etc/php5/cli/conf.d
sudo ln -s ../../mods-available/libevent.ini 01-libevent.ini
cd /etc/php5/fpm/conf.d
sudo ln -s ../../mods-available/libevent.ini 01-libevent.ini
  1. 重启相关服务
sudo service php5-fpm restart
sudo service nginx restart
  1. 测试程序
sudo touch http-server.php
<?php
$socket = stream_socket_server ('tcp://0.0.0.0:2000', $errno, $errstr);
stream_set_blocking($socket, 0);
$base = event_base_new();
$event = event_new();
event_set($event, $socket, EV_READ | EV_PERSIST, 'ev_accept', $base);
event_base_set($event, $base);
event_add($event);
event_base_loop($base);

$GLOBALS['connections'] = array();
$GLOBALS['buffers'] = array();

function ev_accept($socket, $flag, $base) {
    static $id = 0;
    
    $connection = stream_socket_accept($socket);
    stream_set_blocking($connection, 0);
    
    $id += 1;
    
    $buffer = event_buffer_new($connection, 'ev_read', NULL, 'ev_error', $id);
    event_buffer_base_set($buffer, $base);
    event_buffer_timeout_set($buffer, 30, 30);
    event_buffer_watermark_set($buffer, EV_READ, 0, 0xffffff);
    event_buffer_priority_set($buffer, 10);
    event_buffer_enable($buffer, EV_READ | EV_PERSIST);
    
    // we need to save both buffer and connection outside
    $GLOBALS['connections'][$id] = $connection;
    $GLOBALS['buffers'][$id] = $buffer;
}

function ev_error($buffer, $error, $id) {
    event_buffer_disable($GLOBALS['buffers'][$id], EV_READ | EV_WRITE);
    event_buffer_free($GLOBALS['buffers'][$id]);
    fclose($GLOBALS['connections'][$id]);
    unset($GLOBALS['buffers'][$id], $GLOBALS['connections'][$id]);
}

function ev_read($buffer, $id) {
    while ($read = event_buffer_read($buffer, 256)) {
        var_dump($read);
    }
}
?>

  1. 启动测试
php http-server.php

另打开一个终端,输入:

telnet <ip> <port>

© 著作权归作者所有

共有 人打赏支持
hanhang126
粉丝 0
博文 4
码字总数 1047
作品 0
西城
php添加pcntl扩展

安装一些php扩展,参考php手册即可,下面对需要说明的部分进行补充,以安装php扩展pcntl为例。 #查看当前php版本123456deMacBook-Pro:~ admin$ php -vPHP 5.5.14 (cli) (built: Sep 9 2014 ...

白狼栈
2016/03/07
1K
0
php安装libevent扩展

原本想尝试一下PHP编写高性能网络服务,需要安装libevent扩展,没想到让人很费了点脑袋 先下载libevent扩展: http://pecl.php.net/package/libevent/0.0.5 解压后,开始编译 1 2 3 $ cd lib...

贪睡猫仙mosen
2014/06/08
0
0
php workerman 异步通讯框架

提示workerman只是一个代码包,如果php环境满足要求,下载后即可使用,实际上没有安装过程。 workerman对php环境的要求是: 1、php>=5.3.3,可以运行命令 php -v 查看版本 2、Linux系统要求p...

bengozhong
2015/08/13
0
0
关于memcache的一些知识

Mencached、memcached、memcache的区别: 区分开三种写法来帮你理解。Memcached、memcached、memcache。 其中首字母大写的Memcached,指的是Memcached服务器,就是独立运行Memcached的后台服...

kobe52099
06/26
0
0
PHP 7 编译安装开启 libevent 扩展支持

libevent是一个基于事件驱动的高性能网络库。 支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqueue 等;支持 I/O,定时器和信号等事件;注册事件优先级。 有效安排I/O...

yangji008
2017/04/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

arts-week10

Algorithm 905. Sort Array By Parity - LeetCode Review Who’s Afraid of the Big Bad Preloader? 一文读懂前端缓存 一个网络请求3个步骤:请求,处理,响应,而前端缓存主要在请求处响应这两步...

yysue
今天
0
0
00.编译OpenJDK-8u40的整个过程

前言 历经2天的折腾总算把OpenJDK给编译成功了,要说为啥搞这个,还得从面试说起,最近出去面试经常被问到JVM的相关东西,总感觉自己以前学的太浅薄,所以回来就打算深入学习,目标把《深入理...

凌晨一点
今天
5
0
python: 一些关于元组的碎碎念

初始化元组的时候,尤其是元组里面只有一个元素的时候,会出现一些很蛋疼的情况: def checkContentAndType(obj): print(obj) print(type(obj))if __name__=="__main__": tu...

Oh_really
昨天
6
2
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

xpbob
昨天
128
0
Qt编写自定义控件属性设计器

以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用...

飞扬青云
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部