LoginSignup
3
5

More than 5 years have passed since last update.

手っ取り早くMacで複数バージョンのPHPをインストールしてphpenvで切り替えて使う

Posted at

やりたいこと

  • phpenv って便利
  • でも持ってないバージョンのPHPが欲しい時、 phpenv install でいちいちPHPのビルド走らせるのは時間かかるし、依存ライブラリのインストールだとかがとにかく面倒
  • ビルド済みのPHPが欲しい
  • でもって当然 phpenv でバージョン切り替えながらコマンドラインから使いたい

環境

なぜMAMP

MAMPは、Mac用のApache Web Server、MySQL、PHPとそれらの制御用の小さなプログラムが付いたパッケージです。

なぜMAMPを使うかといえば、Mac用のビルド済みPHPバイナリを手に入れる方法で、おそらく一番手っ取り早いからです。
MAMP同梱のPHPならmysqlやsqliteのライブラリもリンク済みで機能も豊富。

同梱されていないバージョンでもダウンロードして所定のディレクトリに放り込むだけで良いので簡単。
Homebrewで大量にライブラリを落としてきてインストールに時間がかかる、ということもありません。

手順

MAMPをインストール

インストーラーに従って次へ連打で終わり。

使いたいバージョンのPHPバイナリを入手

MAMPのダウンロードページに、ある程度メジャーなバージョンのビルド済みPHPのコーナーがあります。

MAMP___MAMP_PRO_-_Downloads.png

欲しいものをダウンロードして解凍し、 /Applications/MAMP/bin/php に放り込みます。

phpenvの管理下で使えるようにする

MAMPのディレクトリに置かれているPHPを、phpenvでも扱えるようにします。
phpenvは versions 以下に置かれたディレクトリでPHPのバージョンを管理しているので、シンボリックシンクを張ってやれば普通に使えます。

# 例えばバージョン7.1.1をphpenvで操作できるようにしたいとき
ln -s /Applications/MAMP/bin/php/php7.1.1 $(phpenv root)/versions/7.1.1

いつも通り使う

phpenv versions に先ほどのMAMPのPHPが出てくるようになるので、普通に使います。

$ phpenv versions
  system
* 7.0.12 (set by /Users/kikuchy/.anyenv/envs/phpenv/version)
  7.1.1
$ phpenv global 7.1.1
$ phpenv rehash

おまけ

MAMPみたいな大きなプログラムを入れるのは嫌! みたいな方は、MAMPから必要なdylibとかだけ取り出して、 install_name_tool とかでphpのリンクテーブル書き換えて、phpenvのversions以下にディレクトリ置けば、それでも使えると思います。
ライセンス的にどうなのか知らないので試してませんが。

3
5
0

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
3
5