PHP5からPHP7に移行する

 

やりたかったこと 

  • Laravelを動かすために、PHP7.1以上が必要。
  • MacのデフォルトはPHP5.6だったためバージョンアップしなければいけない。

 

やったこと1

現在のバージョン確認

$ php -v

結果:PHP 5.6.3 と表示される。

 

HomebrewでPHP7にバージョンアップする

MacにHomebrewをインストールする。

公式ホームページ 

https://brew.sh/

参考ページ 

https://qiita.com/is0me/items/475fdbc4d770534f9ef1

 

HomebrewでPHPを検索

$ brew search php@7

結果:PHP@7.1  PHP@7.2  PHP@7.3  と表示される。

 

PHPをインストール

$ brew install php@7.1

 

Pathを通す

.bashrc に追加する

$ export PATH="/usr/local/opt/php@7.1/bin:$PATH"
$ export PATH="/usr/local/opt/php@7.1/sbin:$PATH"

 

再びバージョン確認

$ php -v

結果:PHP7.1に・・・なっていない。(PHP5.6のままだった)

 

やったこと2

Macのローカル環境でPHP7.1を使えるようにする

PHP7.1はインストールしてあって、パスも通してあるはずなのにバージョンがPHP5.6のままだ。

$ echo $PATH

で確認してみると、 

/usr/bin  が /usr/local/bin よりも前に設定されている。

 

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:

こんな感じ。

そのため、/usr/bin: が先に実行されデフォルトのPHP5.6が読み込まれてしまう。

(Homebrewは /usr/local/bin: の下にインストールされるはず。)

 

HomebrewでインストールしたPHPを使いたい場合は、 /usr/local/bin: を先に書く。

 

Pathを修正して再びバージョン確認

$ php -v

結果:PHP 5.6.3・・がーん

 

やったこと3

~/.bashrc と ~/.bash_profile の修正

まずログイン時に真っ先に適用されるのは、~/.bash_profile~ ということを覚えておく。

~/.bashrc も似ているけど、こちらはシェル起動時に毎回評価されるもの。

ログイン時は新しいシェルを呼び出していると判断されないので、~/.bashrc は呼び出されないということになる。

 

そこで、~/.bash_profile から ~/.bashrc を呼び出すように設定する。

$ vim ~/.bash_profile

中身の記述

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

:qw で保存して終了。

 

バージョン確認

$ php -v

結果:PHP 7.1・・・やった!!

 

ちなみに

やったこと1のPathを通す段階で、.bashrc ではなく .bash_profile に設定していればそのままPathは通っていたかも。

(それに、.bashrcにexportは書かないものらしい。)

 

.bashrc と.bash_profileについてもっと理解したいので、別途勉強しようと思います。

参考サイト 本当に正しい .bashrc と .bash_profile の使ひ分け - Qiita