更新到 MacOS Mojave 后无法使用 PHPIZE
Unable to use PHPIZE after update to MacOS Mojave
当我 运行 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:
找到php编辑它,
~$ 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
可能更好的解决方案 - 强制重新安装头文件。为我解决了系统范围内的大量问题。
运行以下命令将重新安装开发人员工具头文件,应该可以解决问题。
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
我遇到了与上述相同的问题,只是我试图在 macOS Mojave 上安装 xdebug。
我通过执行解决了这个问题:
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
由于某些原因,我发现 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后,如果目录下没有.pkg
文件。也许这个解决方案对你没有帮助。
当我 运行 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:
找到php编辑它,
~$ 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
可能更好的解决方案 - 强制重新安装头文件。为我解决了系统范围内的大量问题。
运行以下命令将重新安装开发人员工具头文件,应该可以解决问题。
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
我遇到了与上述相同的问题,只是我试图在 macOS Mojave 上安装 xdebug。
我通过执行解决了这个问题:
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
由于某些原因,我发现 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后,如果目录下没有.pkg
文件。也许这个解决方案对你没有帮助。