使用workerman event扩展安装失败

yudi

php版本尝试了 7.1 和 5.6.30
centos版本:6.5
php都是通过webtatic这个第三方yum源安装

情况一:
两个php版本通过文档建议方式安装:

yum -y install libevent-devel
pecl install event

都报错如下:
checking for include/event2/event.h... not found
configure: error: Please reinstall the event library, or provide the installation prefix via --with-event-libevent-dir option

解决不了,但看样子是需要安装libevent2.0的版本,所以尝试第二种情况

情况二:
编译安装libevent2.0版本,解决了情况一的问题,event也安装成,
但是添加完event.so的扩展后,重启php-fpm报另外两个错:

NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/event.so' - /usr/lib64/php/modules/event.so: undefined symbol: php_sockets_le_socket in Unknown on line 0
解决方法:sockets扩展需要先于event扩展加载,所以修改event.ini 为 z-event.ini 达到修改加载顺序的目的

NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/event.so' - /usr/lib64/php/modules/event.so: undefined symbol: bufferevent_openssl_set_allow_dirty_shutdown in Unknown on line 0
这个就不知道怎么解决了,尝试编译的时候增加了 --disable-openssl 参数,还是不行

求教各位大神!

阅读 5913
2个回答

walkor

 

  • walkor 2018-12-12

    提示:checking for include/event2/event.h... not found 是需要安装libevent2-devel,apt-get install libevent2-dev yum install libevent2-devel,如果提示冲突先卸载libevent-dev

    提示:undefined symbol: php_sockets_le_socket 是因为event扩展先于socket扩展加载导致,在php.ini里将 extension=event.so 放在 extension=socket.so 后面

yudi

回复标记一下,首先感谢下walkor的耐心解答。
这个问题没有解决,但是改装了libevent扩展,安装成功了
文档说明:
yum install libevent-devel
pecl install channel://pecl.php.net/libevent-0.1.0 //提示libevent installation : 时按回车
echo extension=libevent.so > /etc/php.d/z-libevent.ini

  • 暂无评论