网站首页
如何安装php7的event扩展
最近api系统遇到了高并发的瓶颈,想通过workerman重构。在看workerman文档时发现这么一句话:
Event扩展不是必须的,当业务需要支撑上万并发连接时,推荐安装Event,能够支持巨大的并发连接。如果业务并发连接比较低,例如1000并发连接,则可以不用安装。
如果无法安装Event扩展,可以用libevent扩展代替,注意目前libevent扩展不支持php7,php7用户只能使用Event扩展。
业务的服务器是php7以上,所以不能考虑libevent了,只能安装event扩展了。
以下是我的安装步骤:
1、安装libevent库,并非libevent扩展。
到 http://libevent.org/ 官网上下载最新稳定版,也可以在命令行执行
1 | $ wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz |
拿到包以后解压安装即可
1 2 3 4 | $ tar zxvf libevent-2.0.22-stable.tar.gz $ cd libevent-2.0.22-stable $ ./configure --prefix=/usr $ make && make install |
测试是否安装成功
1 | $ ls -al /usr/lib | grep libevent |
提示如下则表示安装成功
1、安装event扩展。
到php官方下载event扩展的最新稳定包 https://pecl.php.net/package/event,也可以在命令行执行
1 | $ wget https://pecl.php.net/get/event-2.2.1.tgz |
拿到包手解压安装即可
1 2 3 4 5 | $ tar zxvf event-2.2.1.tgz $ cd cd event-2.2.1 $ phpize // 生成configure文件 $ ./configure --with-php-config=/usr/local/php/bin/php-config // 指定php-config $ make && make install |
最后提示下图则表示安装成功
最后在php.ini中加入
1 | extension=event.so |
重启php-fpm即可
注意:
我在重启php-fpm的时候提示
[14-Dec-2016 10:51:25] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/event.so’ – libevent_openssl-2.0.so.5: cannot open shared object file: No such file or directory in Unknown on line 0
<br />
<b>Warning</b>: PHP Startup: Unable to load dynamic library ‘/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/event.so’ – libevent_openssl-2.0.so.5: cannot open shared object file: No such file or directory in <b>Unknown</b> on line <b>0</b><br />
[14-Dec-2016 10:51:26] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful
表示系统未找到 libevent_openssl-2.0.so.5,这时需要将 /usr/lib加入到ld.so.conf中
1 | $ echo '/usr/lib'>>/etc/ld.so.conf && ldconfig |
再次重启php-fpm即可
如果重启 fpm 还是报错,例如:
1 | [14-Jul-2018 08:43:13] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/event.so' - /usr/lib/libevent_openssl-2.0.so.5: undefined symbol: _evthread_lock_fns in Unknown on line 0 |
说明你系统中的 lib64可能存在 libevent 模块,造成冲突了,可以通过命令
1 | ls /usr/lib64/ -la|grep libevent |
来检查 lib64目录是否有 libevent 文件
如果存在文件则删除后重新编译 event 扩展即可
大功告成~
相关推荐
-
php7下安装event扩展
一·、安装支持库libevent,需要编译高版本(这里以最新版本release-2.1.8-stable为例)1. wget -c https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent...
-
PHP性能优化方案
常用性能优化方案1.使用单引号替换双引号,单引号在运行的时候不检查运行引号内部的变量,执行效率是双引号的两倍;2.使用PHP内置的数组操作方法,PHP内置的数组操作方法的运行效率是自行编写代码的10倍以上;3.使用字符串函数替换正则函数,例如:使用 str_replace 替换&...
-
centos7 docker 安装配置nginx
第一步:docker pull nginx第二步:宿主机文件映射Nginx里的配置访问页面目录位置 /data/nginx/html主配置文件nginx.conf位置 /data/nginx/nginx.confnginx.conf文件内容###################user ...
-
js websocket
<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <script src="https://www.lizh...
-
php7下安装event扩展
一·、安装支持库libevent,需要编译高版本(这里以最新版本release-2.1.8-stable为例)1. wget -c https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent...
-
centos7刚安装的docker 1.13.1启动报错Docker failed to start
yum install docker device-mapper-event-libs -y 安装dockersystemctl start docker 报错解决 关闭seliunx 修改文件 /etc/sysconfig/docker加上=false...
-
常用PHP框架有哪些?[PHP框架排行TOP7]
PHP是一种国内外流行的开源服务器端脚本开发语言。能适应大、中、小型项目的发展需要。PHP框架的真正开发始于PHP5。事实上,PHP4时代也有一些框架,但是由于使用的复杂性,没有一个纯粹的PHP易于使用,所以在PHP5才有很大的发展。随着PHP5面向对象功能的实现。基PHP的产品越来越多。在PHP开...
-
JAVA 前后端分离jwt 工具类
package com.lup.util;import com.auth0.jwt.JWT;import com.auth0.jwt.algorithms.Algorithm;import com.auth0.jwt.interfaces.DecodedJWT;import com.auth0.jw...