MENU

OSX(El Capitan)で、MAMPのPHPをコマンドラインで実行するのが面倒なので、シンボリックリンクで便利に繋げてみた。

絶賛MAMP PROユーザーです。(たった59USDで劇的に便利になるのに意外と周りの人が使ってない……)

で、最近のPHPでの開発となると、コマンドラインでPHPを叩いてテンプレートを作成する!みたいな便利機能が多いです。
で、絶賛MAMP PROユーザーなので(しつこいw)、OSXのコマンドラインから叩くPHPと、実際にブラウザ経由で走るPHPのバージョンが違ったり、DBに接続する方法が違ったりと面倒なことに直面します。

今までは、

$ /Applications/MAMP/bin/php/php5.5.26/bin/php app/console doctrine:generate:entity

みたいに長々とMAMPのPHPのフルパスを打ってた(なぜ!?)んだけど、いい加減ちゃんとやれよ!と怒られそう(誰に?)なので簡便化してみました、というご報告。

まず、Googleさんに聞いてみたら、それらしい記事をご紹介いただいたので、そのままやってみたら、Operation not permittedって怒られる。
なんで?とよくよく見てみたら、その記事の冒頭にちゃんと「怒られた方はこちら」ってちゃんと書いてた。

ようするにEl Capitanの場合、Rootlessというセキュリティ機能が追加されて、/usr/binへの変更ができないんだそうです。

先の記事だと「その機能を無効にしちゃおうぜ!」って方法なんだけど、さすがにそれはヤダ。

というわけで、自分のユーザーディレクトリに各MAMP PHPのバージョンのシンボリックを配置しちゃおうぜ!ってのが本題です。
(前振りが長くて申し訳ありませんでした)

まずはホームディレクトリにphpというフォルダ作成。

$ mkdir ~/php

次にパスを通します。.bash_profileに次の1行を追加。

export PATH=$PATH:/Users/ユーザー名/php

で、その設定を有効化。

$ source ~/.bash_profile

作ってパスを通したディレクトリに、MAMP PHPの各バージョンのシンボリックリンクを作成。

$ ln -s /Applications/MAMP/bin/php/php5.1.6/bin/php /Users/ユーザー名/php/php5.1
$ ln -s /Applications/MAMP/bin/php/php5.2.17/bin/php /Users/ユーザー名/php/php5.2
$ ln -s /Applications/MAMP/bin/php/php5.3.29/bin/php /Users/ユーザー名/php/php5.3
$ ln -s /Applications/MAMP/bin/php/php5.4.42/bin/php /Users/ユーザー名/php/php5.4
$ ln -s /Applications/MAMP/bin/php/php5.5.26/bin/php /Users/ユーザー名/php/php5.5
$ ln -s /Applications/MAMP/bin/php/php5.6.10/bin/php /Users/ユーザー名/php/php5.6
$ ln -s /Applications/MAMP/bin/php/php5.6.10/bin/php /Users/ユーザー名/php/php5
$ ln -s /Applications/MAMP/bin/php/php7.0.0/bin/php /Users/ユーザー名/php/php7

これで各バージョンのPHPがコマンドラインから使えるようになりました。

$ php5 -v
PHP 5.6.10 (cli) (built: Jul  6 2015 14:28:54)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

$ php5.5 -v
PHP 5.5.26 (cli) (built: Jul  6 2015 14:26:26)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies

$ php7 -v
PHP 7.0.0 (cli) (built: Dec  8 2015 16:39:19) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies

みたいな感じ。