sudo pecl 安装 mongodb 问题 |未知类型名称“pcre_cache_entry”

Posted

技术标签:

【中文标题】sudo pecl 安装 mongodb 问题 |未知类型名称“pcre_cache_entry”【英文标题】:sudo pecl install mongodb problem | unknown type name 'pcre_cache_entry' 【发布时间】:2022-01-19 06:54:10 【问题描述】:

我正在尝试在我的 MacOS Monterey 上为 php 8.0.13 安装 mongodb exentsion。

我尝试sudo pecl install mongodb 命令:然后得到以下错误。

/opt/homebrew/Cellar/php@8.0/8.0.13/include/php/ext/spl/spl_iterators.h:151:4: error: unknown type name 'pcre_cache_entry'
                    pcre_cache_entry *pce;
                    ^
1 error generated.
make: *** [php_phongo.lo] Error 1
ERROR: `make' failed

哪个php:/opt/homebrew/bin/php php -v:PHP 8.0.13 (cli) (built: Nov 28 2021 13:11:14) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.13, Copyright (c) Zend Technologies with Zend OPcache v8.0.13, Copyright (c), by Zend Technologies

谁能帮我解决这个错误? 感谢您的关注!

【问题讨论】:

【参考方案1】:

要使用 PECL 编译 MongoDB,您必须将 pcre2.h 复制到 php 的包含目录。

对于 php@8.0,你可以这样做,但是你必须在每次 PHP 发布之后或者如果你切换 PHP 版本时这样做。

pcre2_h="$(find "$(brew --cellar pcre2)" -name "pcre2.h")"
cp -f "$pcre2_h" "$(brew --cellar php@8.0)"/*/include/php/ext/pcre

为避免这种情况,我建议使用shivammathur/extensions brew tap 来安装 PHP 扩展。

【讨论】:

以上是关于sudo pecl 安装 mongodb 问题 |未知类型名称“pcre_cache_entry”的主要内容,如果未能解决你的问题,请参考以下文章

PHP7 pecl 安装 mongodb扩展

php mongodb拓展 安装

如何在 Ubuntu 13.10 上安装 PHP PECL 扩展“SQLite”

pecl安装redis模块失败(redirected but no location)

如何为PHP安装mongodb的扩展

php的mongodb扩展插件安装