如何在 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 扩展的主要内容,如果未能解决你的问题,请参考以下文章

在 ubuntu 中安装 libevent 开发库

在linux中安装memcache时,安装libevent依赖包是发生错误,是啥原因

在我的 Mac 操作系统中安装 libevent 后找不到文件 <event2\event.h>

如何在 OS X Yosemite 上的 Apache 2.4 中安装 mod_perl 2.0.9?

在ubuntu16.04中安装apache2+modsecurity以及自定义WAF规则详解

在 Debian 9 中安装 php5.6 [关闭]