无法在 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)
markdown 安装Oracle PHP扩展(oracle OCI8) - 适用于Mac OS 10.12.6的即时客户端 - 自制环境 - 在PHP 7.2上