1

当我pecl install mysql_xdevapi在终端中运行时,出现以下错误:

configure: error: protobuf not found, 请在系统中安装它,考虑使用 --with-protobuf 或设置 MYSQL_XDEVAPI_PROTOBUF_ROOT

然后我通过brew install protobuf. 跑步protoc --version给了我:

库协议 3.12.4

所以似乎安装了“protobuf”。当我再次运行pecl install mysql_xdevapi时,我得到了同样的错误,告诉我没有安装“protobuf”。我已经尝试了在这篇文章中找到的几乎所有内容:在 Mac 上安装 Google 协议缓冲区,但似乎没有任何效果。

我正在运行 macOS Catalina (10.15.6)、PHP 7.3.20(通过 安装brew)。

非常感谢您!

4

1 回答 1

0

我不知道是否为时已晚,但在花了大约六个小时的时间后,我终于设法让它工作了。显然 pecl 包中有一个错误,所以我们必须自己动手。

如果你真的确定你已经安装了 protobuf 比继续或预先安装它首先你需要下载包

pecl download mysql_xdevapi

解压缩一个包并 cd 到解压缩的目录

cd /usr/local/Cellar/php/8.0.9/include/php/mysql_xdevapi-8.0.26

您将看到一个文件夹和一个 XML 文件,cd 到文件夹

cd mysql_xdevapi-8.0.26/

并找到名为 config.m4 的文件。找到这一行,它应该是行号 416 但可能会有所不同

AC_CHECK_HEADER("google/protobuf/any.h", [], [PROTOBUF_INCLUDES_NOT_FOUND=1])

并将其更改为

AC_CHECK_HEADER("google/protobuf/any.h", [], [PROTOBUF_INCLUDES_NOT_FOUND1=1])

然后运行

sudo phpize

我们刚刚做的是为我们创建了一个配置文件现在运行创建的配置

./configure

配置应该完成且没有错误

比跑

make
make install

而已!

不要忘记在 php ini 中添加扩展名

extension="mysql_xdevapi.so"
于 2021-08-11T08:41:53.647 回答