LoginSignup
13
7

More than 3 years have passed since last update.

Homebrewでphp7.2を入れようとしたらハマった

Last updated at Posted at 2018-09-25

動機

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を使いたいがディレクトリ自体が存在しなかった。対応策を知りたい。

13
7
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
7