Я слежу за этим ссылка на сайт установить это расширение PHP, но я застрял в середине.
Когда я пытаюсь запустить эту команду pecl install intl
Я получаю это сообщение:
Specify where ICU libraries and headers can be found [DEFAULT] :
И я не знаю, где расположены библиотеки ICU.
Если я нажимаю Enter, я получаю эту ошибку:
configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.
ERROR: `/private/tmp/pear/install/intl/configure --with-php-config=/usr/bin/php-config --with-icu-dir=DEFAULT' failed
Как я могу найти правильный путь к библиотекам ICU?
Я использую High Sierra и MAMP с версией PHP 7.1
ICU выступает за ICU — Международные компоненты для Unicode
Установите его с заваркой
brew update
brew search icu # returns 'icu4c'
brew install icu4c
ИЛИ ЖЕ
Установите его с помощью pecl
sudo pecl update-channels
sudo pecl install intl
РЕДАКТИРОВАТЬ: после лучшего взгляда в [email protected] кажется, что он уже скомпилирован с ‘intl’
php -i | grep intl
... '--enable-intl' ...
Так что мой ответ обычно бесполезен для [email protected] (но я думаю, что он может быть полезен в некоторых случаях)
Сегодня я сталкиваюсь с той же проблемой, пытаясь перейти с php56 на [email protected].
После много копаний вот обходной путь.
Убедитесь, что у вас есть чистая установка [email protected] и она установлена в текущей версии
php -v
PHP 5.6.35 (cli) (built: Mar 31 2018 20:21:31)
Убедитесь, что у вас есть icu4c
brew update
brew install icu4c
Далее мы установим и скомпилируем intl вручную
cd /usr/local/src/
wget https://pecl.php.net/get/intl-3.0.0.tg
tar zxf intl-3.0.0.tgz
cd intl-3.0.0/
phpize --clean
phpize
./configure
А вот и хитрость, отредактируйте Makefile
vi Makefile
Изменить строку CXXFLAGS
следующим образом
CXXFLAGS = -g -O2 -std=c++11
И линия CPPFLAGS
следующим образом
CPPFLAGS = -DHAVE_CONFIG_H -DU_USING_ICU_NAMESPACE=1
Затем сохраните и скомпилируйте
make
make install
И вуаля
Installing shared extensions: /usr/local/Cellar/[email protected]/5.6.35/pecl/20131226/
Не забудьте добавить extension="intl.so"
на ваш php.ini
vi /usr/local/etc/php/5.6/php.ini
(и перезапустить apache)
Источники: