私はこれに従っています link これをインストールするために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でインストールする
brew update
brew search icu # returns 'icu4c'
brew install icu4c
OR
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
AND 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を再起動するため)
ソース: