在XAMPP上安装Php-intl

时间:2015-01-11 10:37:51

标签: php macos apache cakephp

我需要在我的mac上使用扩展intl和XAMPP。

所以我跟着这个链接:

Php-intl installation on XAMPP for Mac Lion 10.8

http://lvarayut.blogspot.it/2013/09/installing-intl-extension-in-xampp.html

我总是重启我的apache服务器但是没有安装扩展。因为如果我发布:

php -m | grep intl #should return 'intl'

返回空

没有它我无法启动的命令是这样的作曲家和cakephp:

composer create-project --prefer-dist -s dev cakephp/app cakephp3

给我这个错误:

Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for cakephp/cakephp 3.0.*-dev -> satisfiable by cakephp/cakephp[3.0.x-dev].
    - cakephp/cakephp 3.0.x-dev requires ext-intl * -> the requested PHP extension intl is missing from your system.
  Problem 2
    - cakephp/cakephp 3.0.x-dev requires ext-intl * -> the requested PHP extension intl is missing from your system.
    - cakephp/bake dev-master requires cakephp/cakephp 3.0.x-dev -> satisfiable by cakephp/cakephp[3.0.x-dev].
    - Installation request for cakephp/bake dev-master -> satisfiable by cakephp/bake[dev-master].

所以我需要用扩展名intl来解决ext-intl的问题。

有人可以帮我解决这个问题吗? 我该如何安装此扩展程序?

由于

4 个答案:

答案 0 :(得分:30)

以下步骤对我有帮助,以防您使用OSX

http://www.phpzce.com/blog/view/15/installing-intl-package-on-your-mac-with-xampp

的步骤
  1. 检查设置了哪条php路径,即

    root$: which php
    
  2. 如果您在Mac上使用xampp,那么它应该是

    /Applications/XAMPP/xamppfiles/bin/php 
    

    但如果是

    /usr/bin/php 
    

    你需要改变你的OSx php

    root$: PATH="/Applications/XAMPP/xamppfiles/bin:${PATH}" 
    
  3. 安装icu4c

    root$: brew install icu4c 
    
  4. 通过PECL安装Intl

    root$: sudo pecl update-channels 
    root$: sudo pecl install intl 
    
  5. 您可以检查Intl是否已成功安装

    root$: php -m | grep intl #should return 'intl' 
    
  6. 完成

    ============================

    注意:

    • /Applications/XAMPP/xamppfiles/etc/php.ini文件中的扩展程序列表添加/取消注释extension=intl.so行。并重新启动Apache。谢谢@pazhyn

    • 在安装" intl"之前你必须安装Autoconf,如果你还没有安装它。谢谢@Digant

      • 通过Homebrew brew install autoconf automake 或
      • 运行以下命令

        curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-latest.tar.gz
        tar xzf autoconf-latest.tar.gz
        cd autoconf-*
        ./configure --prefix=/usr/local
        make
        sudo make install
        cd ..
        rm -r autoconf-*
        

答案 1 :(得分:12)

使用Moodle时我遇到了intl的问题,我通过以下方式解决了这个问题:

  1. 重新运行XAMPP安装程序(if you don't have the installer on hand, download it from here)并勾选" XAMPP开发者文件" XAMPP installer
  2. 使用您的终端并进入XAMPP的二进制文件夹$ cd /Applications/XAMPP/bin
  3. 使用PHP的软件包管理器通过运行intl安装$ sudo ./pecl install intl这应该编译一些东西,如果成功,安装应该完成:

    Build process completed successfully
    Installing '/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/intl.so'
    install ok: channel://pecl.php.net/intl-3.0.0
    configuration option "php_ini" is not set to php.ini location
    You should add "extension=intl.so" to php.ini
    
  4. $ cd ../etc在那里,您需要添加php.ini extension=intl.so在我的系统上,我在第959行之后添加了一行,您可以通过搜索{{1 }}
  5. 最后从XAMPP GUI重新启动Apache Web服务器。
  6. 希望这适合你!

答案 2 :(得分:5)

我和XAMPP有同样的问题。 我尝试了几个答案但没有成功。 可以解决降低替代库http://php-osx.liip.ch/的问题。 这个库php,已经安装了intl和其他几个包。 下载后转到xampp中的httpd.conf和LoadModule php5_module指向/usr/local/php5/libphp5.so中的这些包

答案 3 :(得分:0)

上述解决方案在我运行后不适用于 PHP 7.4

sudo pecl install intl

然后我收到此错误:

n file included from 
fatal error: 'php.h' file not found
#include <php.h>
     ^~~~~~~
1 error generated.
make: *** [php_intl.lo] Error 1
ERROR: `make' failed