网站首页
如何安装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扩展
最近api系统遇到了高并发的瓶颈,想通过workerman重构。在看workerman文档时发现这么一句话:Event扩展不是必须的,当业务需要支撑上万并发连接时,推荐安装Event,能够支持巨大的并发连接。如果业务并发连接比较低,例如1000并发连接,则可以不用安装。如果无法安装Event扩展,可...
-
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
1、什么是 Redis?.2、Redis 的数据类型?3、使用 Redis 有哪些好处?4、Redis 相比 Memcached 有哪些优势?5、Memcache 与 Redis 的区别都有哪些?6、Redis 是单进程单线程的?7、一个字符串类型的值能存储最大容量是多少?8、Redis 的持久化机...
-
centos7 docker安装openjdk并运行jar包
第一步:docker pull openjdk第二步:创建一个java_app的数据卷 docker volume create java_app第三步:将jar包上传到/var/lib/docker/volumes/java_app/_data/下,然后启动镜像第四步:启动docker ...
-
centos7通过yum安装JDK1.8
安装之前先检查一下系统有没有自带open-jdk命令:rpm -qa |grep javarpm -qa |grep jdkrpm -qa |grep gcj如果没有输入信息表示没有安装。如果安装可以使用rpm -qa | grep java |&n...
-
php的性能优化
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。 当然了,这个测试方法需要在十万级以上次执行,效果才明显。 其实静态方法和非静态方法的效率主要区别在内存:静态方法...
-
java 生成缩略图 imageIO异常:Unsupported Image Type, 不支持图像类型【附解决办法】
最近再做图片生成缩略图功能,发现大部分的图片都可以生成缩略图,但是偶尔有几个图片会报异常:Unsupported Image Type;几经折腾,发现报异常的图片格式为CMYK 格式,我们常见的图片格式都是RGB格式的,所以我们要把CMYK格式的图片转换成RGB格式的,网上有些办法转化后图片颜色会丢...
-
[LuPHP] PHPMVC精简框架第一讲(基本MVC框架配置)
LuPHP是一个精简版的PHPMVC框架,该框架经历了N个高可用系统的测验(数据存储量千万级别,并发1000),该框架结合了市面上流行的PHP框架,去除了臃肿的代码;本框架遵循即用即写的原则,做到项目中绝不存在多余(实际根本用不上)代码!该框架作者历经10年以上项目研发经验,总结并写出一套适合自己的...
-
centos上libreoffice+unoconv安装步骤,实现word转pdf(可以php读取pdf页码)
php读取docx页码比较难操作,并且读取doc格式的页码数更难搞了,所以先将doc/docx/pptx/ppt 先转换为pdf,然后通过pdf读取页码就比较精确了一、libreoffice安装1、yum search libreoffice查询一下系统自带的安装包安装libreoffi...