26

当我运行 PHPIZE 并得到以下错误时我应该怎么做?我已经安装了 xcode 命令行工具。

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:
4

4 回答 4

72

潜在更好的解决方案 - 强制重新安装头文件。为我在整个系统范围内修复了大量问题。

运行以下命令将重新安装开发者工具头文件,并且应该可以解决问题。

$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
于 2018-10-02T15:57:19.833 回答
4

由于某种原因,我发现Xcode command line tools我的Mac上没有完全安装,最后我解决了这个问题如下:

 1. xcode-select --install
 2. cd /Library/Developer/CommandLineTools/Packages/ 
 3. open macOS_SDK_headers_for_macOS_10.14.pkg

注意:执行step2后,如果dir中没有.pkg文件。也许这个解决方案不会帮助你。

于 2019-04-13T22:12:37.490 回答
2

找到phpize并编辑它,

~$ whereis phpize
phpize: /usr/local/bin/phpize
~$ vim  /usr/local/bin/phpize

在我的phpize脚本中是这样的

prefix='/usr/local/php7'   ## where you should edit
datarootdir='/usr/local/php7/php'
exec_prefix="`eval echo ${prefix}`"
phpdir="`eval echo ${exec_prefix}/lib/php`/build"
includedir="`eval echo ${prefix}/include`/php"
...

phpize_get_api_numbers()
{
  # extracting API NOs:
  PHP_API_VERSION=`grep '#define PHP_API_VERSION' $includedir/main/php.h|$SED 's/#define PHP_API_VERSION//'`
  ZEND_MODULE_API_NO=`grep '#define ZEND_MODULE_API_NO' $includedir/Zend/zend_modules.h|$SED 's/#define ZEND_MODULE_API_NO//'`
  ZEND_EXTENSION_API_NO=`grep '#define ZEND_EXTENSION_API_NO' $includedir/Zend/zend_extensions.h|$SED 's/#define ZEND_EXTENSION_API_NO//'`
}

如果您确认您有头文件但 phpize 脚本配置错误,您可以编辑该行

prefix='/usr/local/php7'

并且php.h

$ pwd
/usr/local/php7/include/php/main
$ ls  php.*
php.h

如果没有,你可以自己编译php

于 2018-10-01T14:52:54.107 回答
-2

我遇到了与上述相同的问题,只是我试图在 macOS Mojave 上安装 xdebug。

我通过执行解决了这个问题:

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
于 2018-11-28T13:35:57.253 回答