Установка/включение расширения PHP Pecl Intl в конфигурации PHP, связанной с Mac OS X Leopard по умолчанию

Как я могу установить или включить расширение PHP Pecl Intl в моей среде PHP?

У меня есть стандартная конфигурация 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

Любая помощь очень ценится!


person Marijn Huizendveld    schedule 09.12.2010    source источник
comment
Вы хотите сначала удалить перед установкой?   -  person ajreal    schedule 09.12.2010
comment
Если вы имеете в виду удалить мою полную среду PHP, я бы не хотел. Я нахожусь в середине проекта, который слишком велик, чтобы рисковать установкой PHP.   -  person Marijn Huizendveld    schedule 09.12.2010
comment
@ajreal, это невозможно. У меня нет установки PECL для Intl. Просто чтобы быть уверенным, я попробовал pecl uninstall intl, но он сказал мне, что это невозможно, так как он не установлен с самого начала. Проблема, похоже, коренится в том факте, что исходный код связан с моим дистрибутивом PHP, но он не включен.   -  person Marijn Huizendveld    schedule 10.12.2010


Ответы (4)


Вот что я сделал в OSX 10.9 Mavericks:

  1. Установите некоторые зависимости с помощью Homebrew:

    $ brew install autoconf
    $ brew install icu4s
    $ brew link --force icu4s
    
  2. Установите и проверьте Pear/PECL (инструкции с сайта http://techtastico.com/post/como-instalar-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:

    $ 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
    
person neu242    schedule 28.04.2014
comment
Спасибо! Это сработало для меня, чтобы установить расширение intl на Mavericks. Я пропустил установку pear/pecl и вместо этого установил icu4c. Это устранило проблему с зависимостью композитора, которая у меня была: требует ext-intl * -> запрошенное расширение PHP intl отсутствует - person ooXei1sh; 21.10.2014
comment
если вы получили ошибку, что отсутствует <php.h>, введите эту благодарность в Yosemite или El Capitan xcode-select –-install - person Kannika; 19.05.2016
comment
Большое спасибо, но должно быть brew install icu4c - person A Star; 06.12.2016

На данный момент я перекомпилировал установку PHP. Я создал суть с моей строкой конфигурации, которую я буду обновлять.

Обновить

liip создали хороший бинарный файл, который позволяет обойти все эти проблемы. Он основан на оригинальном двоичном файле entropy.ch, я рекомендую использовать его для разработки PHP. на Mac.

person Marijn Huizendveld    schedule 10.12.2010

Лучше поздно, чем никогда, но если вы похожи на меня и установили PHP напрямую с php.net (вместо того, чтобы использовать что-то вроде Homebrew или Port, то вы можете просто перейти по следующей ссылке, чтобы установить Pear и PECL:

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

Это сработало для меня.

person numberwhun    schedule 04.03.2012

на моем Mac я установил версию php с грушей, используя brew. Это решило все мои проблемы, так как osX php по умолчанию не работал у меня после того, как я попробовал много разных способов. Вы можете попробовать без установки php/pear, если вы уже это сделали.

Вам нужен Homebrew http://brew.sh/

Установить PHP

brew install php56 --with-pear or brew install php56 pear

Установить автоконф

brew install autoconf

Установить icu4c

brew install icu4c

Создает символические ссылки

brew link --force icu4c

Установить intl с (жемчугом) pecl

sudo pecl install intl

Homebrew должен включить intl и символическую ссылку на все правильные версии с соответствующими командами.

person A Star    schedule 06.12.2016