composer installでPHP extension intlエラーが発生して死ぬ時の対策

投稿者: | 2017年2月7日

正確には、HomebrewでインストールしたPHP7でbrew updateをした後、php-intlのエラーのせいでcomposer install出来なくなった話です。

こんにちは、クックビズの杉田です。掲題の件ですが、直近二ヶ月で私の身の回りで4回も発生しました。ググってもググっても解決策が出てこずに、PHP ユーザーズ (日本語) on Slack!で聞いて解決したので、事例の共有ということで紹介します。

ちなみに、Slackで質問する前に以下の記事を参考にしました。(他にもみたけど忘れました)

ただ、書かれている方法を試してもダメだったり、Pearを入れるとか今どき絶対やりたくない解決法(参考にした記事が古い記事だったので仕方ない)だったりしました。

結論から言うと、

これだけで直りました。

というわけで、同じ現象に悩まされている方は参考にしてください。

環境

問題が起きた人の環境は以下の通りでした。

  • Mac OSX ElCapitan
  • PHP 7.0.x (homebrewでインストール)
  • php-intlはインストール済み (homebrewでインストール)

自分を含めて、状況を確認するとどうもbrew updateをしたあとでcomposer installすると問題が発生したようです。

PHP5.6環境の同僚にも同じ問題が発生しました。

CakePHP3を使ってると同じ現象に遭遇する可能性が上がると思います。

起こった現象

おもむろにcomposer installを実行すると…

あれ?!何でだ?!昨日まで動いてたのに!!

そんなはずは無いと思い、brew search php70-intlで調べる。

php-intl入ってるやん!

対策

というわけで、冒頭のSlackグループで質問してたどり着いた解決策がこちら。

ソースコードからphp70-intlをインストールし直してあげる。(PHP5.6環境の人は、php56-intlですね)

再度composer installを叩くと、無事にインストールできました。

おまけ

今回のようにextensionがちゃんとロードされているかどうかを確かめるには、ターミナルでこうしてあげれば良いです。

bool(true)が表示されればphp-intlが入ってます。

または、単純にこちらでもOK!

結果にintlが表示されれば、php-intlが入ってます。

現在、クックビズでは新しいメンバーを募集しております!

このブログを書いているのはクックビズ株式会社の開発チームです。私たちと働いてみたいと思った方はWantedlyから話を聞きにきて下さいヽ(=´▽`=)ノ  

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です