无法在MacosX上安装php Intl扩展

时间:2018-01-07 09:28:49

标签: php terminal macos-high-sierra intl

我跟着这个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

3 个答案:

答案 0 :(得分:3)

编辑:在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

和行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)

来源:

答案 1 :(得分:2)

ICU代表 ICU - Unicode的国际组件

使用brew安装

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

OR

使用pecl

安装它
sudo pecl update-channels
sudo pecl install intl

installing intl package on osx

答案 2 :(得分:0)

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

使用提取tar.gz文件(我将其解压缩到〜/ Downloads /文件夹中)

tar -xzvf php-7.1.31.tar.gz 进入提取的文件夹

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 /

制作

sudo make install

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

打开/Applications/XAMPP/xamppfiles/etc/php.ini,并添加extension = intl.so

就是这样!使用XAMPP GUI重新启动Apache,它应该可以工作。每次安装新版本的XAMPP时,都必须运行这些命令。