无法在 Mac 上安装 php 扩展“mysql_xdevapi”

Posted

技术标签:

【中文标题】无法在 Mac 上安装 php 扩展“mysql_xdevapi”【英文标题】:Cannot install php extension 'mysql_xdevapi' on mac 【发布时间】:2020-08-04 13:23:50 【问题描述】:

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

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

然后我通过brew install protobuf 安装了“protobuf”。运行protoc --version 给了我:

libprotoc 3.12.4

所以似乎安装了“protobuf”。当我再次运行pecl install mysql_xdevapi 时,我得到了同样的错误,告诉我没有安装'protobuf'。我已经尝试了几乎所有我在这篇文章中找到的东西:Installing Google Protocol Buffers on mac,但似乎没有任何效果。

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

非常感谢您!

【问题讨论】:

【参考方案1】:

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

如果您确实确定已安装 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"

【讨论】:

以上是关于无法在 Mac 上安装 php 扩展“mysql_xdevapi”的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac 上的 XAMPP 上安装 PHP 国际化扩展 (Intl)

在 Mac 上的 XAMPP 上安装 PHP 7.0 国际化扩展 (Intl)

Mac 安装PHP Redis 扩展

Mac下还有必要重新安装PHP吗

markdown 安装Oracle PHP扩展(oracle OCI8) - 适用于Mac OS 10.12.6的即时客户端 - 自制环境 - 在PHP 7.2上

在 mac 上使用 PHP 安装 mcrypt