2

本文是 https://stackoverflow.com/que... 的中文翻译版

在MacBook Pro上已经安装了php7.4

$php -v
PHP 7.4.15 (cli) (built: Feb 26 2021 09:28:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.15, Copyright (c), by Zend Technologies

尝试通过以下命令来安装MongoDB扩展

$sudo pecl install mongodb

但是安装失败了

mp/pear/temp/mongodb/src/contrib/ -DHAVE_CONFIG_H -g -O2 -c /private/tmp/pear/temp/mongodb/php_phongo.c  -fno-common -DPIC -o .libs/php_phongo.o
In file included from /private/tmp/pear/temp/mongodb/php_phongo.c:29:
In file included from /opt/homebrew/Cellar/php@7.4/7.4.15_1/include/php/ext/spl/spl_iterators.h:24:
/opt/homebrew/Cellar/php@7.4/7.4.15_1/include/php/ext/pcre/php_pcre.h:25:10: fatal error: 'pcre2.h' file not found
#include "pcre2.h"
         ^~~~~~~~~
1 error generated.
make: *** [php_phongo.lo] Error 1
ERROR: `make' failed

还尝试了

$arch -x86_64 sudo pecl install mongodb

结果的错误还是相同的
有人知道我可以怎么解决这个问题吗?或者我可以不通过pecl安装MongoDB扩展吗?非常感谢


最终我按照这个链接解决了这个问题

在安装完成一个更新版本的php之后,我把php版本从7.3.24升级到了7.4.16

仍然有这个相同的错误
fatal error: 'pcre2.h' file not found #include "pcre2.h"

从这个错误中,我尝试检查MacOs Big Sur文件系统中的文件,最后我找到了 pcre2.h 的位置,奇怪的是,它在pcre文件夹中被调用,所以我手动这个文件从 pcre2 文件夹拷贝到 pcre文件夹里。

我使用的解决办法:

将下面的版本号改成你的

cp /opt/homebrew/Cellar/pcre2/10.36/include/pcre2.h /opt/homebrew/Cellar/php\@7.4/7.4.16/include/php/ext/pcre/pcre2.h

接着,使用brew安装了mongodb

$brew install mongodb

然后,再次尝试安装mongodb扩展

$sudo pecl install mongodb

最终,它起作用了。但是,我不确定这是否是通过向目录中手动添加文件解决的。
(对不起,我仍然是MacOs环境的新手,上周刚购买了mac mini m1来开发我的编程技能)

如果你要从 HomeBREW 安装 php 的多个版本,请确保你使用的是你想要的当前版本。您可以使用 which php 来确定你的版本。


buildyuan
95 声望6 粉丝

talk is cheap,show me the code