macOs Big Sur 11.2.2 phpize grep: /usr/include/php/main/php.h: No such file or directory

在macOs Big Sur 11.2.2使用phpize 安装扩展的时候遇到以下问题

phpize 
grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:        
Zend Module Api No:     
Zend Extension Api No:

原因是 /usr/include 文件夹丢失,因系统原因我们也没有权限进行添加修改

解决此问题。方法如下:

首先确保已安装 Xcode 和命令行工具。打开终端窗口并运行以下命令以显示 SDK 路径:

xcrun --show-sdk-path

 此命令应输出如下内容

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk

如果没有,请执行以下命令安装命令行工具

xcode-select --install

并按照说明进行操作。安装完成后,启动Xcode App以确保安装完成。

现在再次尝试显示 SDK-Path

xcrun --show-sdk-path

编译扩展所需的 php 工具尝试使用这个缺少的包含文件夹。我们将创建 phpize 和 php-config 的修改版本,它们将使用 macOS SDK 中的包含。首先我们将复制 phpize 和 php-config,然后我们将用补丁修改这些副本。

我们在您的主目录中的 /Users/YOUR-USERNAME 下创建一个名为“php-private”的新文件夹..

mkdir ~/php-private/

现在将 phpize 和 php-config 复制到 php-private

cp /usr/bin/phpize ~/php-private/
cp /usr/bin/php-config ~/php-private/

现在通过执行来确定您的系统上安装了哪个 PHP 版本

grep version= ~/php-private/php-config

你应该用 7.3.22 或 7.3.24 得到这样的东西

version="7.3.22-(to be removed in future macOS)"

下载 phpize 补丁phpize-bigsur.patch.zip并保存

对于 PHP 7.3.22 下载 php-config 补丁php-config-7.3.22-bigsur.patch.zip并保存。

对于 PHP 7.3.24 下载 php-config 补丁php-config-7.3.24-bigsur.patch.zip并保存。

提取压缩的补丁文件。

PHP 7.3.22:

unzip ~/Downloads/phpize-bigsur.patch.zip -d ~/Downloads/
unzip ~/Downloads/php-config-7.3.22-bigsur.patch.zip -d ~/Downloads/

PHP 7.3.24:

unzip ~/Downloads/phpize-bigsur.patch.zip -d ~/Downloads/
unzip ~/Downloads/php-config-7.3.24-bigsur.patch.zip -d ~/Downloads/

现在我们修补 phpize 和 php-config 副本

PHP 7.3.22:

patch ~/php-private/phpize < ~/Downloads/phpize-bigsur.patch
patch ~/php-private/php-config < ~/Downloads/php-config-7.3.22-bigsur.patch

PHP 7.3.24:

patch ~/php-private/phpize < ~/Downloads/phpize-bigsur.patch
patch ~/php-private/php-config < ~/Downloads/php-config-7.3.24-bigsur.patch

运行我们打过补丁的 phpize(要用新的,不能再用旧的了)

~/php-private/phpize

当一切顺利时,你会得到这样的东西

Configuring for:
PHP Api Version:         20180731
Zend Module Api No:      20180731
Zend Extension Api No:   320180731

运行我们打过补丁的 php-config,现在我们将找到修补后的 php-config 的完整路径。这可以像这样完成:

echo ~/php-private/php-config

输出类似于

/Users/YOUR-USERNAME/php-private/php-config

至此phpize 和php-config 的错误就解决了

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值