如何在 Apache2 中安装 libevent 扩展
Posted
技术标签:
【中文标题】如何在 Apache2 中安装 libevent 扩展【英文标题】:How install libevent extension in Apache2 【发布时间】:2018-05-14 17:40:17 【问题描述】:我尝试在 Ubuntu 16.04 的 Apache2.4 的 php 中安装 libevent,但我做不到。
我有这个 sn-p 代码,用于了解是否在我的 apache 服务器上的测试页面中检测到该库:
$test = event_base_new();
它对我说
调用未定义函数 event_base_new()
我错过了一些信息,例如我不知道库是否被视为 mod(我认为不是),但我在 Apache2 文档中没有找到有关库的文档。
我从官网编译源码 libevent-2.1.8-stable 并在我的php.ini (php/apache2) 中添加这一行:
extension=/usr/local/libevent.so
我重新启动了我的 Apache2,但这不起作用。
【问题讨论】:
【参考方案1】:libevent
扩展不随 PHP 一起发布。它与event
扩展分开,也与libevent C 库分开(但与之相关),并且与the Apache event MPM 完全无关。
如果你想安装 PHP libevent
扩展,你需要从 PECL 安装它。但是,该扩展与 PHP 7 不兼容,并且自 2013 年以来未更新,因此您可能不想要它。
【讨论】:
我用 PECL 安装了事件库。但是 event_base_new() 函数是 libevent 函数而不是事件函数:php.net/manual/en/function.event-base-new.php。它位于 libevent 部分。现在,事件函数有效,但 libevent 无效。另外,来自event和libevent的PECL有冲突:下载pecl/libevent失败,版本“0.0.1”,最新版本是0.1.0,稳定性“beta”,使用“channel://pecl.php.net/ libevent-0.1.0" 安装 那么你想要libevent
扩展名,而不是event
。
所以,最后,libevent 已经过时了。我尝试单独安装它,它需要旧版本的 PHP (
以上是关于如何在 Apache2 中安装 libevent 扩展的主要内容,如果未能解决你的问题,请参考以下文章
在linux中安装memcache时,安装libevent依赖包是发生错误,是啥原因
在我的 Mac 操作系统中安装 libevent 后找不到文件 <event2\event.h>
如何在 OS X Yosemite 上的 Apache 2.4 中安装 mod_perl 2.0.9?