如何在PHP环境中安装或启用PHP PECL INTL扩展名?

我有一种库存的PHP配置与Mac OS X Snow Leopard捆绑在一起。从来源安装libicu,而不是 $pecl install intl 导致以下错误:

 /private/tmp/pear/temp/intl/collator/collator_class.c:92: error: duplicate 'static'
 /private/tmp/pear/temp/intl/collator/collator_class.c:96: error: duplicate 'static'
 /private/tmp/pear/temp/intl/collator/collator_class.c:101: error: duplicate 'static'
 /private/tmp/pear/temp/intl/collator/collator_class.c:107: error: duplicate 'static'
 make: *** [collator/collator_class.lo] Error 1
 ERROR: `make' failed

任何帮助都非常感谢!

有帮助吗?

解决方案 2

暂时,我重新编译了我的PHP安装。我创建了一个 要旨 使用我的配置字符串,我将继续更新。

更新

利普 创建了一个很好的二进制,可以绕过所有这些麻烦。它基于原始 二进制,我推荐使用它用于Mac上的PHP开发。

其他提示

这是我在OSX 10.9 Mavericks中所做的事情:

  1. 安装一些依赖项 自制:

    $ brew install autoconf
    $ brew install icu4s
    $ brew link --force icu4s
    
  2. 安装和验证梨/PECL(指示 http://techtastico.com/post/como-instalar-pear-pear-y-pecl-en-os-x-mavericks/):

    $ curl -O http://pear.php.net/go-pear.phar
    $ sudo php -d detect_unicode=0 go-pear.phar
      [ Select 1 and enter /usr/local/pear ]
      [ Select 4 and enter /usr/local/bin ]
      [ Press return ]
    $ pear version
    
  3. 安装PECL INTL:

    $ sudo pecl install intl
    $ sudo cp /private/etc/php.ini{.default,}
    $ sudo chmod 644 /private/etc/php.ini
    $ echo extension=intl.so >> /private/etc/php.ini
    

迟到总比没有好,但是如果您像我一样,直接从php.net安装了PHP(而不是使用诸如Homebrew或port之类的东西,那么您可以只需按照以下链接即可安装梨和PECL:

http://akrabat.com/php/setting-up-php-mysql-on-on-os-x-10-7-lion/

它对我来说很好。

在我的Mac上,我使用Brew安装了PHP版本。这解决了我的所有问题,因为默认的OSX PHP在尝试了许多不同的方式后对我不起作用。如果您已经这样做,则可以在不安装PHP/梨的情况下尝试。

您需要自制 http://brew.sh/

安装PHP

brew install php56 --with-pear 或者 brew install php56 pear

安装AutoConf

brew install autoconf

安装ICU4C

brew install icu4c

创建符号链接

brew link --force icu4c

用(Pearl)PECL安装INTL

sudo pecl install intl

Homebrew应该使INTL和Symlink符合各自命令的所有正确版本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top