我在 MacOS 上安装 PHP 的 mongodb 驱动程序时遇到了一些问题。我笔记本电脑上的 PHP 随 MacOS 一起提供,版本为:
PHP 7.1.19 (cli)(构建时间:2018 年 8 月 17 日 20:10:18)(NTS)版权所有 (c) 1997-2018 The PHP Group Zend Engine v3.1.0,版权所有 (c) 1998-2018 Zend Technologies
我已按照有关禁用 csrutil 的说明使用以下命令安装了 pear:
curl -O http://pear.php.net/go-pear.phar
sudo php -d detect_unicode=0 go-pear.phar
然后我尝试使用以下命令安装 mongodb:
sudo pecl install mongodb
现在的问题是编译失败,出现“未找到包含文件”错误。我安装了 Xcode 开发和命令行工具,并到处寻找答案,但似乎无法解决这个错误。
安装时 pecl 找到了包含路径(如下所示),但编译时出现以下错误:
/usr/include/php/ext/pcre/php_pcre.h:29:10:致命错误:未找到“pcre.h”文件
包括“pcre.h”
^~~~~~~~
根据网络上的建议,我甚至使用 C_INCLUDE_PATH 包含了头文件的路径,但没有作用。
检查 PHP 是否包含... -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib 检查 PHP 扩展目录... /usr/lib/php/extensions/no-debug-non-zts-20160303 检查 PHP 是否安装有标头前缀... /usr/include/php
有人能解释一下吗?我对此束手无策 :)
答案1
我能够解决这个问题。虽然 php_pcre.h 文件位于包含路径中,但 pcre.h 却不在。
我使用以下命令运行安装程序(设置 pcre 头文件的路径)并且成功了:
sudo C_INCLUDE_PATH=/usr/local/opt/pcre pecl install mongodb
唷!