例えばCakePHP 3
をインストールするとき、ext-intl
が必要と出ます。これはPHPのビルド時に指定するか、PECL
からインストールするかしなくてはなりません(ディストリビューション版PHPならphp-intl
パッケージが用意されている場合もあります)。
PHPを複数バージョン共存させることができるphpenv
環境下でPECLからインストールするには、pecl-build
という
phpenv
用プラグインが利用できます。
そのpecl-build
ですが、オリジナルの https://github.com/crocos/pecl-build.git は不具合が修正されておらず動かない場合があるので、フォークされた方を利用します。
参考:http://sorehane.blog.jp/archives/1003227022.html
参考記事のようにやっても正常に動かない。
参考2:https://github.com/crocos/pecl-build/pulls
みんな修正案をプルリクエストしているがマージされない。どうやらHTTPレスポンスヘッダの'Content-Disposition'
をgrepコマンドの環境変数依存で取得できたりできなかったりするのが原因らしいですね。
というわけで、実際の運用として、例えばphpenv
が${PHPENV_ROOT}
に入っているとして、
cd ${PHPENV_ROOT}/plugins/
git clone https://github.com/felipecwb/pecl-build.git
cd
phpenv pecl intl
という感じとなります。
( ${PHPENV_ROOT}/plugins/php-build/share/php-build/default_configure_options
にビルドオプションとして書いておくほうが取りこぼしないのでお勧めです)