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

时间:2016-01-04 18:04:57

标签: php macos xampp

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

我尝试修改 XAMPP>等> php.ini 并取消注释该行:

;extension=php_intl.dll

并重新启动Apache,但它没有用。

3 个答案:

答案 0 :(得分:20)

在OSX上安装“intl”扩展名。

  1. 通常,PHP会自动安装在OSX上。 因此,如果您想使用XAMPP或任何apache服务器,则必须将路径点更改为XAMPP。您可以使用以下方法检查路径:
  2.   

    $ php“

    你应该

    /Applications/XAMPP/xamppfiles/bin/php 
    

    如果没有,你会得到

    /usr/bin/php. 
    

    这是OSX的php。因此,您必须使用以下命令进行更改:

      

    $ PATH =“/ Applications / XAMPP / xamppfiles / bin:$ {PATH}”

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

      $ brew install icu4c

      它需要几次并返回它的路径,应该看起来像这样:

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

        $ sudo pecl update-channels

             

        $ sudo pecl install intl

        它会提示你输入icu4c路径。 完成安装icu4c后,将以下语句放到php.ini

        extension=intl.so
        
        1. 重启apache。并检查它是否整齐安装。
        2.   

          $ php -m | grep intl

          应该返回'intl'

          就是这样!

答案 1 :(得分:6)

在OSX上,如果你有自制软件并且有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

答案 2 :(得分:0)

我在Mac上的XAMPP失败了:

$ brew install icu4c

,之后我收到了消息:

  

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

我通过运行命令来解决我的问题,下载,解压缩,编译和安装所需版本的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库和标题的位置[默认值]:

/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!');
}