文档章节

libevent php扩展安装

hanhang126
 hanhang126
发布于 2016/07/13 22:47
字数 319
阅读 36
收藏 0
点赞 0
评论 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
linux下memcached安装

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

行者PHPer
2012/07/06
0
2
CentOS下的Memcache安装

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

龙上
2012/05/31
0
0
Linux下的Memcache安装方法

服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 。 下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz 另外,Memcache用到了libevent这个库用于S...

于涛ns_天使
2013/02/06
0
0
Linux下的Memcache安装

Linux下的Memcache安装 发布时间:December 6, 2007 分类:Linux,Memcache 《IBM T61 A29入手》 《Windows下的Memcache安装》 最近在研究怎么让Discuz!去应用Memcache去做一些事情,记录下M...

河北李晓东
06/26
0
0
Linux下Memcache服务器端的安装

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

晨曦之光
2012/03/09
80
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java基础——异常

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 异常处理: 可以挖很多个陷阱,但是不要都是一样...

凯哥学堂
24分钟前
0
0
180723-Quick-Task 动态脚本支持框架之结构设计篇

文章链接:https://liuyueyi.github.io/hexblog/2018/07/23/180723-Quick-Task-动态脚本支持框架之结构设计篇/ Quick-Task 动态脚本支持框架之结构设计篇 相关博文: 180702-QuickTask动态脚本...

小灰灰Blog
27分钟前
0
0
SBT 常用开发技巧

SBT 一直以来都是 Scala 开发者不可言说的痛,最主要的原因就是官方文档维护质量较差,没有经过系统的、循序渐进式的整理,导致初学者入门门槛较高。虽然也有其它构建工具可以选择(例如 Mill...

joymufeng
32分钟前
0
0
HBase in Practice - 性能、监控及问题解决

李钰(社区ID:Yu Li),阿里巴巴计算平台事业部高级技术专家,HBase开源社区PMC&committer。开源技术爱好者,主要关注分布式系统设计、大数据基础平台建设等领域。连续4年基于HBase/HDFS设计和...

中国HBase技术社区
33分钟前
1
0
ES18-JAVA API 批量操作

1.批量查询 Multi Get API public static void multiGet() {// 批量查询MultiGetResponse response = getClient().prepareMultiGet().add("my_person", "my_index", "1")// 查......

贾峰uk
37分钟前
0
0
SpringBoot2.0使用health

1,引入actuator <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency> 2,application.properties ......

暗中观察
44分钟前
0
0
阿里巴巴Java开发规约

###编程规约 命名风格 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。...

简心
49分钟前
0
0
如何用TypeScript来创建一个简单的Web应用

转载地址 如何用TypeScript来创建一个简单的Web应用 安装TypeScript 获取TypeScript工具的方式: 通过npm(Node.js包管理器) npm install -g typescript 构建你的第一个TypeScript文件 创建...

durban
53分钟前
0
0
分享好友,朋友圈自定义分享链接无效

这个问题是微信6.5.6版本以后,修改了分享规则:分享的连接必须在公众号后台设定的js安全域名内

LM_Mike
今天
0
0
2018年7月23日课程

一、LVS-DR介绍 director分配请求到不同的real server。real server 处理请求后直接回应给用户,这样director负载均衡器仅处理客户机与服务器的一半连接。负载均衡器仅处理一半的连接,避免了...

人在艹木中
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部