无法在 MacosX 上安装 php 国际扩展

Can't install php Intl extension on MacosX

我正在按照此 link 安装此 PHP 扩展,但我卡在了中间。
当我尝试 运行 此命令时 pecl install intl 我收到此消息:

Specify where ICU libraries and headers can be found [DEFAULT] :

而且我不知道 ICU 图书馆的位置。
如果我按 Enter,我会收到此错误:

configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.
ERROR: `/private/tmp/pear/install/intl/configure --with-php-config=/usr/bin/php-config --with-icu-dir=DEFAULT' failed

如何找到 ICU 库的正确路径? 我在 PHP 7.1

版中使用 High Sierra 和 MAMP

ICU 代表 ICU - Unicode 的国际组件

用 brew 安装它

brew update
brew search icu # returns 'icu4c'
brew install icu4c

用pecl安装

sudo pecl update-channels
sudo pecl install intl

installing intl package on osx

编辑:仔细查看 php@5.6 后,它似乎已经用 'intl'

编译了
php -i | grep intl
... '--enable-intl' ...

所以我的回答通常对 php@5.6 没用(但我猜在某些情况下可能有用)


我今天遇到了同样的问题,试图从 php56 切换到 php@5.6。

经过大量挖掘,这里是解决方法。

确保全新安装 php@5.6 并使用当前版本

php -v
PHP 5.6.35 (cli) (built: Mar 31 2018 20:21:31)

还要确保有icu4c

brew update
brew install icu4c

接下来,我们将手动安装编译intl

cd /usr/local/src/
wget https://pecl.php.net/get/intl-3.0.0.tg
tar zxf intl-3.0.0.tgz
cd intl-3.0.0/
phpize --clean
phpize
./configure    

这里是诀窍,编辑 Makefile

vi Makefile

修改CXXFLAGS行如下

CXXFLAGS = -g -O2 -std=c++11

AND CPPFLAGS 行如下

CPPFLAGS = -DHAVE_CONFIG_H -DU_USING_ICU_NAMESPACE=1

下一步,保存,编译

make
make install

瞧瞧

Installing shared extensions:     /usr/local/Cellar/php@5.6/5.6.35/pecl/20131226/

不要忘记将 extension="intl.so" 添加到您的 php.ini

vi /usr/local/etc/php/5.6/php.ini

(并重新启动 apache)

来源:

从 php.net 下载您在 XAMPP 中使用的 PHP 版本。我正在使用 7.3。这个版本对我有用:php-7.3, 我猜如果您按照这些步骤进行操作,它也可能适用于 7.0 或 7.2。

提取 tar.gz 文件使用(我将其提取到 ~/Downloads/ 文件夹中)

tar-xzvfphp-7.1.31.tar.gz cd 进入提取的文件夹

cd php-7.1.31 更改到子文件夹 ext/intl

cd ext/intl/ 运行 构建扩展的这些命令

/Applications/XAMPP/bin/phpize

./configure --enable-intl --with-php-config=/Applications/XAMPP/bin/php-config --with-icu-dir=/Applications/XAMPP/xamppfiles/

制作

须藤安装

您现在可以删除所有下载的文件以及解压的文件夹。

打开 /Applications/XAMPP/xamppfiles/etc/php.ini ,添加扩展名=intl.so

就是这样!使用 XAMPP GUI Restart 你的 Apache,它应该可以工作。每次安装 XAMPP.

的新版本时,您都必须 运行 这些命令