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

バージョン古いw まぁでもインストールされてるものはそのまま使えば良いよね
ちょっと聞いてくれよ、新しいマシンにImageMagickインストールしようとしたんだよ。そしたら前のバージョンにあった「ActivePerlとの連携」チェックボックスがなくなって「StrawberryPerlとの連携」になってたんだよ。あれこれもしかして詰んだ?
なぜかrustupがSSL系のエラーでインストールできない。bashとcurlのプロキシ設定もしたし、curlバージョンも最新のものをソースからビルドしたんだけども…
Androidでmusicfm入れられるんだ〜って超テンションMAXでインストールしたらAndroidのバージョンが対応してなかった
只<何故か動いていたアレコレがOSバージョンを理由にインストールされなくなった。げふぅ
カーナヴィンもアンドロイドOSで、こっちはちゃんとバージョン4.4は満たしてるのにインストールできなかったし……。 タブレットとしてはやっぱりちょっとあれなカーナヴィン……。
「バージョン4.73以上のアップデートファイル(再インストール用)が保存されたUSBストレージ機器を接続してください」ってのが出てもう無限ループ・・・  再インストしたら初期化するじゃないかあああああ!!!!!! もうしらん寝る!!
YGのゲーム日本バージョンインストールしてこよ 外国バージョン実はダウンロードまえからしてたけど✌(´>ω<`)✌((((( とりあえず音ゲー大好きだから外国バージョンも日本バージョンもインストールしよ(((((((((((
cmderみてたらオプションでインストールされるnode.jsのバージョンが0.12でうゎってなった
あれほんまにあかん。特にライトユーザほど非ASCII文字でユーザ名作るやろうし。当のMSすらRuntimeのインストーラでやらかしてて、今でもそのバージョンのVCでコンパイルされてるアプリが新規インストールできないとか微妙な互換性問題があったりする。
10月初旬現在、iTunesの最新バージョンの12.5.1が実はWindows10と相性が悪い! iPhoneをPCと繋げても認識してくれないバグが( ´д`ll) iTunesソフトを削除再インストールしても意味ありません! 難しい操作が必要なのでサポートに電話してくださいね!
Elgato Game Capture HD60の録画ソフトgame computer hdインストールしたんだけどなんかバージョンによってインストールできないんだけど😭ほかのソフトないのかな
古いPCに無理させないで、はやくちゃんと切り替えてやんなくちゃ。 だいぶインストールしてあったソフト(最近はアプリっちゅーの?)のバージョンが変わってて、新しいPCそっちにするつもりだけど、古いほう、そゆとこキレイキレイしてから寝かせてやるかなぁ。 長いことよく遊んでくれたね。
CVE-2017-1000117 (Gitのコマンドインジェクション脆弱性) の影響を受けるバージョンのgitを使っていて、かつnc (netcat), cURLのインストールされている環境だと、git clone --recursiveでこのリポジトリをcloneすると面白い。
ロスレガ更新データのダウンロードページで固まる💤😭💥 最新バージョンDLできないからプレイできないよ~アンインストールしてインストールしなおしてもDLできない😢
刀剣乱舞をやってた先輩に女バージョンありますぜと天華百剣の小烏丸を見せたら速攻でインストールしてたので性というのは不思議なもんだなぁ
そのアプリにバージョンが対応していなければ、脳みそのいうマシンにその知識や情報というアプリをインストールしようとしても、マシンはその情報を正確に解釈、そして使用する事ができない。
ロードオブダイスを試しにやってみたけど、チュートリアル最初からデジャブが・・・w あれ?これやったことあるような?? と思ったら5/2にサービス終了したエラキス2の新バージョンとのこと。 でもどこが変わったのか分からないwww そんな訳で、そっとアンインストールしました
Androidのアプリの素みたいなの? ちなみに僕はapkインストールしてTwitterのバージョンをあえてちょっと前のやつのままにしてる

やりたいこと

  • 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/ に放り込みます。

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以下にディレクトリ置けば、それでも使えると思います。
ライセンス的にどうなのか知らないので試してませんが。

  • コメント

    1. 匿名希望
      2017/08/18(金) 07:15:58

      cmderみてたらオプションでインストールされるnode.jsのバージョンが0.12でうゎってなった

    2. 匿名希望
      2017/08/18(金) 07:15:58

      YGのゲーム日本バージョンインストールしてこよ
      外国バージョン実はダウンロードまえからしてたけど✌(´>ω<`)✌(((((
      とりあえず音ゲー大好きだから外国バージョンも日本バージョンもインストールしよ(((((((((((

    3. 匿名希望
      2017/08/18(金) 07:15:58

      「バージョン4.73以上のアップデートファイル(再インストール用)が保存されたUSBストレージ機器を接続してください」ってのが出てもう無限ループ・・・  再インストしたら初期化するじゃないかあああああ!!!!!! もうしらん寝る!!

    4. 匿名希望
      2017/08/18(金) 07:15:58

      カーナヴィンもアンドロイドOSで、こっちはちゃんとバージョン4.4は満たしてるのにインストールできなかったし……。
      タブレットとしてはやっぱりちょっとあれなカーナヴィン……。

    5. 匿名希望
      2017/08/18(金) 07:15:58

      只<何故か動いていたアレコレがOSバージョンを理由にインストールされなくなった。げふぅ

    記事に戻る

関連記事