sudo pecl install intl 并出现致命错误:未找到“ext/standard/php_smart_str.h”文件

sudo pecl install intl 并出现致命错误:未找到“ext/standard/php_smart_str.h”文件

我尝试安装 Moodle 所需的 php 扩展 intl。我使用sudo pecl install intl时收到以下错误:

/private/tmp/pear/install/intl/intl_error.h:24:10: fatal error: 'ext/standard/php_smart_str.h' file not found
#include <ext/standard/php_smart_str.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [php_intl.lo] Error 1
ERROR: `make' failed

当它提示时Specify where ICU libraries and headers can be found [DEFAULT] : 我按下回车键。

我已经安装了 autoconfbrew install autoconf

如何解决这个问题?谢谢!

答案1

正如你所看到的此链接intl 不再维护,并且与 PHP 的更高版本不兼容。它现在包含在最多PHP 发行版。brew 版本包含它。

你应该这样做:

  • brew install [email protected](或最新版本)
  • brew link --overwrite --force [email protected]
  • 覆盖路径中的 PHP 二进制文件(见下文,假设您正在使用 bash)(请注意,它需要取代任何其他 PHP 二进制文件)
echo 'export PATH="/usr/local/opt/[email protected]/bin:/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.bash_profile 
  • 获取您的 bash 配置文件 ( . ~/.bash_profile)
  • 检查 intl 模块 ( php -m | grep intl)

相关内容