本文是 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
来确定你的版本。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。