macOS(Catalina)で composer install した時に php-intl が見つからなくてエラーになった
タイトル長いっすね。
始まり
macOSに初期で入っていたPHP
でcomposer install
をしたら、
php-intl
がないとエラーがでて実行できなかった。悲しい...
結論
解決方法として、次の二通りの方法があります。
(VagrantやDockerを使うとかを除けば)
私はpear
を入れるのが面倒だったのと、7.3を入れたかったのでまとめていれる2つ目をやりました 。
(最終的にDockerを使うことになるのですがそれはまた別の話)
php-intl
をインストールする- homebrewで新しく
PHP
をインストールする
原因
調べてみたら、macOSのデフォルトのPHPでは 、php-intl
が入っていなかったのが原因だったようでした....
次のコマンドを実行して見るとintl
関連の出力されないのでされるようにするのがこのエントリーの内容
(もし出力されたら、別の要因なのでこのエントリーの内容では解決しないかもしれない...)
$ php -i | grep intl
1.php-intl
をインストールする
初期からmacOSにインストールされているPHP
にphp-intl
をインストールする方法です。
もしもpear
がインストールされていなければ、先にインストールしないといけないです。
1.0 (オプション)pearをインストール
次の記事を参考にpear
を事前にインストールする
qiita.com
1-1.intl
のインストール
あとは、次のコマンドでintlをインストールするだけです。
$ sudo pecl install intl
2.homebrewで新しくPHP
をインストールする
Gitやzshの最新を入れるためによくやる、homebrew
からインストールする方法。
homebrew
経由だとintlを初期から使えるので、homebrew
からインストールするだけで解決する。
今回は、バージョン7.3
を入れたかったので7.3
系のインストールしたときの方法を書きます。
2-1.新しくPHP
を入れる
次のコマンドを実行してPHP
の7.3をインストールする。
$ brew install php@7.3
2-2.パスを通す
インストールしたPHP
コマンドのパスを通して使えるようにします。
私は、zshを使っているので.zshrc
にしていますが、bashなら.bash_profile
か.bashrc
に書き込むといいと思います。
$ echo export PATH="/usr/local/opt/php@7.3/bin:$PATH" >> ~/.zshrc $ echo export PATH="/usr/local/opt/php@7.3/sbin:$PATH" >> ~/.zshrc
2-3.シェルの再読み込み
次のコマンドを実行してシェルを再読み込み。
これパスがあっていれば使えるはず
$ exec $SHELL -l
次のコマンドで、intlが使えるようになっているか確認
$ php -i | grep intl
2-4.古い設定ファイルを移動
今使っている設定ファイルだとphp-intl
が使えないので、次のフォルダのconf.d
を別の場所に置いておく。
$ mv /usr/local/etc/php/{初期インストールされているのPHPバージョン}/conf.d /usr/local/etc/php/{初期インストールのPHPバージョン}/conf.d.bk
最後に
今回は2の方法では、7.3をインストールしましたが、
brew install php
で最新をインストールできます、このエントリーのコマンドから@7.3
を抜けばできるはず。
(試していないのでわかりません。)
正直なところ、参照文献を読めば解決するので、このエントリーはいらない気がする。
でも、2回ぐらい同じことやっていたので個人のメモとして残します。
参照文献
素晴らしい記事を書かれた方々に感謝