Fatal error: 'ext/standard/php_smart_str.h' file not found

Fatal error: 'ext/standard/php_smart_str.h' file not found

我下载了 MacOS Mojave 并在我的 2012 年中期 macbook Pro 上进行了全新安装。使用命令行工具安装 XCode。使用 PEARL、PECL 和最新版本的 ICU (63.1) 使本机 Apache 和 PHP 工作,以便以后使用 Intl 扩展。

但是每次Intl安装尝试都失败了。在全新安装之前,我在笔式驱动器上发现了一个 intl.so 并使用了 ICU 版本 54,但这并不是让开发环境正常工作的最佳方式。

最后,我被 PECL 困住了,因为找不到 php_smart_str.h 文件,无法完成 Intl 的安装。

我也重新安装了开发者工具头文件:

$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

有没有Homebrew的开发环境可以吗?

当我 运行 在终端:

sudo pecl install intl

Returns 以下:

/private/tmp/pear/install/intl/intl_error.h:24:10: fatal error: 'ext/standard/php_smart_str.h' file not found

在创建 libtool 和 运行ning 之后:make.

好的,我真的不想使用自制程序,而是只使用本机 apache 和 php 预装在我的 MacBook Pro 上 Mac OS Mojave , 努力为 CakePHP 使用保持尽可能干净的开发环境。

因此,在 Pecl 官方网站 ( https://pecl.php.net/package/intl ) 上,很明显 Intl 包不再维护并已被取代。从 PHP 5.3.0 开始,您不需要使用 Pecl 来安装国际扩展,它与 PHP 捆绑在一起。

但是,在 Mac OS Mojave 上原生安装 PHP 7.1.24 时缺少它。

然后我从 php.net 下载了 PHP 7.1,安装了 XCode 命令行工具、ICU (http://site.icu-project.org/)、Autoconf,重新安装了开发者工具头文件,然后最终使用 phpize.

安装了 Intl 扩展

重要提示:您必须禁用 SIP。