文档章节

libevent php扩展安装

hanhang126
 hanhang126
发布于 2016/07/13 22:47
字数 319
阅读 41
收藏 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安装libevent扩展

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

贪睡猫仙mosen
2014/06/08
0
0
关于memcache的一些知识

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

kobe52099
2018/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
linux下memcached安装

memcache的安装 官方(http://memcached.org/)下载,服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.14 另外,Memcache用到了libevent这个库用于Socket的处理,所以还...

行者PHPer
2012/07/06
0
2
Linux下的Memcache安装(含libevent的安装)

Linux下Memcache服务器端的安装 服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 。 下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz 另外,Mem...

晨曦之光
2012/03/09
430
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
18分钟前
0
0
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
24分钟前
0
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
54分钟前
2
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
55分钟前
2
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部