動機
Laravel使って何かしよう!と思いcomposerを入れようとした。
どうせならとphpも、もともとmacに入ってた7.1から7.2にバージョンあげてみることに。
やったこと
ネットで検索してphpを入れようとすると、だいたい以下のコマンドが見つかる
brew install homebrew/php/php72
けれど、どうもhomebrew/phpはdeprecatedになってしまったらしく、以下のエラーになってしまった。
Error: homebrew/php was deprecated. This tap is now empty as all its formulae were migrated.
非推奨になったので、違う方法で試さないといけない。
で、brew search php72
で探したところ、以下のコマンドでインストールできた。
brew install php@7.2
※2019/10/5追記
コメントで教えていただきましたが、本来はこのコマンド実行後に表示されるメッセージにしたがって、環境変数を設定する必要があるみたいです。
設定変更ができれば、以下のハマりどころには出くわさないようです。
ハマりどころ
インストールしたものの、どうしてももともと入っているphpを見てしまう。
調べたところ、ターミナルを再起動すれば良いという記事を見たが、それでも上手くいかない。
よくよくメッセージを見ると、brew link php
しろ、と書いてある。
なるほどリンクが上手く言っていないのか、と実行してみると、以下のエラーになってしまった。
$ brew link php
Linking /usr/local/Cellar/php/7.2.10...
Error: Could not symlink sbin/php
/usr/local/sbin is not writable.
おや?と思ってそのディレクトリを探すも、そんなものはない。
仕方がないのでmkdir /usr/local/sbin
でディレクトリを作成。
not writableとか言ってるので、権限もsudo chmod -R 777 /usr/local/sbin
で付与。
その後、もう一度コマンドを叩く。
すると、
$ brew link php
Linking /usr/local/Cellar/php/7.2.10...
Error: Could not symlink include/php
/usr/local/include is not writable.
今度はincludeディレクトリが無いと言う。
ちくしょーめ! とincludeディレクトリも作成してまたまたパーミッションを設定。
今度こそは! とbrew link php
!
$ brew link php
Linking /usr/local/Cellar/php/7.2.10...
Error: Could not symlink lib/httpd
/usr/local/lib is not writable.
。。。。
ぐぬぬ、、、こうなったらとことん付き合ってやる。。。
libディレクトリを作成してパーミッションを設定。
これで三度目の正直!
$ brew link php
Linking /usr/local/Cellar/php/7.2.10... 24 symlinks created
ほっ。。。なんとかできた。
バージョンも確認して見ると、
$ php -v
PHP 7.2.10 (cli) (built: Sep 14 2018 07:07:08) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
7.2になった!
まとめ
なんだったんだ。。。。
詳しい人教えてください。。。
#参考
homebrewインストール時にリンクが貼られない問題
/usr/local/sbinを使いたいがディレクトリ自体が存在しなかった。対応策を知りたい。