在Mac上的XAMPP上安装PHP国际化扩展(Intl)

13

我该如何在我的OS X上的XAMPP服务器上安装Intl?

我尝试修改我的XAMPP>etc>php.ini文件并取消注释以下行:

;extension=php_intl.dll

尝试重新启动Apache,但它没有起作用。


Windows使用.dll文件,*Nix和Mac使用.so文件。 - aynber
这个网站http://codingexplained.com/operating-systems/mac/installing-php-intl-extension-os-x-mavericks 可能会对您有所帮助。 - Mark Amery
3个回答

24

在OSX上安装"intl"扩展。

  1. 通常,在OSX上会自动安装PHP。因此,如果您想使用XAMPP或其他Apache服务器,则必须将路径更改为指向XAMPP。您可以使用以下命令检查路径:

$ which php

您应该会得到:

/Applications/XAMPP/xamppfiles/bin/php 

如果没有,你将会得到

/usr/bin/php. 

这是OSX的PHP。因此,您需要使用以下命令更改:

$ PATH="/Applications/XAMPP/xamppfiles/bin:${PATH}"

  1. 现在,是时候安装intl了。首先,您需要安装icu4c。

$ brew install icu4c

它需要一些时间,并将其路径返回给您,应该看起来像这样:

/usr/local/Cellar/icu4c/x.x.x 
  1. 接下来,我们通过使用pecl来安装intl

$ sudo pecl update-channels

$ sudo pecl install intl

它会提示您输入icu4c路径。在完成安装icu4c后,请将以下语句放入php.ini文件中。

extension=intl.so
  1. 重新启动 Apache 并检查其是否已正确安装。

$ php -m | grep intl

应该返回 'intl'。

就这样!


2
当我运行命令 sudo pecl install intl 时,它返回以下信息:No releases available for package "pecl.php.net/intl",安装失败。 - amit gupta
我不得不先卸载(sudo pecl uninstall intl),因为我用错误的路径安装了它。如果我按照说明操作,它会很好用! - Dan
请帮忙。它显示:通道“pear.phpunit.de”通过http://未响应,失败并显示消息:文件http://pear.phpunit.de:80/channel.xml无效(收到:HTTP/1.1 410 Gone)。尝试改用https://连接通道“pear.phpunit.de”。无法检索通道“pear.phpunit.de”的channel.xml(连接到`pear.phpunit.de:443'失败:)。 - bluesky777
@amit gupta:尝试从cweiske的回答中获取答案,网址为http://stackoverflow.com/questions/35953764/no-releases-available-for-package-pecl-php-net-intl。对我有用。 - SenioreT
好的解决方案和描述。谢谢。 - Memariaan

7

如果你在OSX上有Homebrew并且已经安装了PHP7:

$ brew install php70-intl // For PHP7.0
$ brew install php71-intl // For PHP7.1

对于PHP5.5:

$ brew install php55-intl

重新打开终端窗口以确保它在您的会话中正常工作。要查看它是否通过CLI解释器加载:
$ php -m | grep intl

或者:
$ php -i "(command-line 'phpinfo()')" | grep intl

来源: https://daveismyname.blog/blog/install-php-intl-on-mac-using-homebrew

本文简要介绍如何使用 Homebrew 在 Mac 上安装 PHP Intl 扩展。Intl 扩展是一个为 PHP 提供国际化支持的扩展,它包含了许多用于处理多语言和区域设置的函数。

安装步骤:

  1. 打开命令行终端工具
  2. 输入以下命令并按下 Enter 键:brew install php-intl
  3. 等待安装完成
  4. 在你的 PHP 配置文件中启用 Intl 扩展

如果一切顺利,你现在就可以在 Mac 上使用 PHP Intl 扩展了。


1

我在Mac上使用XAMPP失败了,错误信息如下:

$ brew install icu4c

接着我收到了以下消息:

你的系统上安装的intl ICU版本已经过时(4.8.1.1),与Symfony捆绑的ICU数据(57.1)不匹配。

我通过运行命令下载、解压缩、编译并安装所需版本的ICU来解决了我的问题(如果需要,你可以在这里选择另一个版本http://site.icu-project.org/download,文件应以...src.tgz结尾):

$ curl -sS -o /tmp/icu.tar.gz -L http://download.icu-project.org/files/icu4c/57.1/icu4c-57_1-src.tgz && tar -zxf /tmp/icu.tar.gz -C /tmp && cd /tmp/icu/source && ./configure --prefix=/usr/local && make && sudo make install

然后运行:
$ sudo pecl install intl

并指定了 ICU 库和头文件的位置 [DEFAULT]:

/usr/local

然后使用extension=intl.so编辑了'php.ini'文件并重新启动了Apache。

使用以下命令检查结果:

<?php
if (extension_loaded('intl')) {
    echo "PHP: " . PHP_VERSION . "<br>\n";
    echo "ICU: " . INTL_ICU_VERSION . "<br>\n";
} else {
    die('OOPS! The intl extension is not enabled!');
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接