MAMPでLaravelを起動したらPHPバージョンが合ってなくてエラー
今回の記事ではタイトル通り、MAMPでLaravelを起動してみたら
PHPバージョンが合ってなくエラーになった件です。
超主観的(とくに青い小文字にしたところとか)なので語弊のある言い方もするかもです。
鵜呑みにしないで「ふーん」程度でみてもらえればと。
以下、エラー内容です。
Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version “>= 8.1.0”
ふわっとした言い方になりますが、
おそらくPHPバージョンが 8.1.0以上じゃないとダメだよというエラーです。
PHPバージョンに焦点をあて、3つの立場に分けてみました。
|
僕はエラー文を読んだとき「いずれかのPHPバージョンを上げる」方向性で行ったのですが、ダメでした。
そんなこともあって、同じように苦しむ人が少なくなるように僕がなんとか解決した方法を
できるだけ端的で、順番通りにやれば解決できるような書き方に努めました。
MAMPのPHPバージョンについて
まずはMAMPのPHPについて分かったこと。
- MAMPはダウンロードをすれば更新される
- 更新をした上で、MAMPの最新PHPバージョンは8.0.8(執筆時2022年11月04日)
- PHPバージョンが8.1.0以上なら解決したかも。現状はムリ。
- ちなみに、MAMPのPHPバージョンをグレードダウンする方法なら検索するとすぐ見つかる
このことから、以下の仮説を立ててみました。
- MAMP以外のもののPHPバージョンが8.1.0
- MAMPのPHPバージョンが8.0.8なら、そこを上限に他のものがPHPバージョンのダウングレードする形にすれば解決するのでは??
この仮説にならって、他の2つのPHPバージョンを下げていきます。
自分のPCのPHPの環境変数PATH
Homebrewでインストールをした(ことを前提にして)PHPを確認していきます。
Homebrewが分からなったりインストールしていない方は、
以下の記事内のHomebrewのことが参考になるかと思います。
とりあえず以下コマンドでphpバージョンを確認。
php -v
次にターミナルで、以下のコマンド実行をします。
brew list
一覧の中にphp@7.4やphp@8.0があるか確認します。
(僕の場合は、ダウングレードが目的なのでphp@7.4があるかを確認しました)
もしなければ、以下のコマンドでPHPをインストールします。
brew install php@7.4
念のためbrew list
でphp@7.4のインストールを確認したら
以下のコマンドを実行してphp@7.4そのものの保存先パスを見てみます。
brew --prefix php@7.4
大体の方は以下のように返ってくることが多いです。
/usr/local/opt/php@7.4
次に自分のPCの環境変数PATHが、そのPHP@7.4に向いているか確認します。
まずは現状のPHPのバージョンを、php -v
で確認してから以下のコマンドを実行。
which php
以下のように返ってきたら、想定しているPHP@7.4を向いています。
/usr/local/opt/php@7.4/bin/php
※「php -v」で確認したバージョンは、このパスのPHPを向いていることになります。
余談ですが、「which php」での僕の場合は以下の保存パスになっていました‥。
/usr/local/bin/php
今となって真相はわかりませんが、おそらく「Mac PHP インストール」とかで検索して
PHPだけ単体で入れたのかもしれません。
ここからはさらに余談で、Macにあらかじめ用意されたphpコマンドなら「which php」で
以下の保存パスになることが多いかと。
/usr/bin/php
こっちのパターンの方の方が多いかもしれませんね。
↓ここからは自分のPCの環境変数PATHを修正して、そのPHP@7.4に向かせたい方の作業です。
まずはシェルの種類を確認したいので、ターミナルで以下のコマンドを実行します。
echo $SHELL
すると、MacOSの方はbashかzshが大体なので以下のように返ってきます。
適宜で読み合わせて下さい。
/bin/bash
または
/bin/zsh
ちなみにシェルを変更するには、以下のコマンド実行でできる。chsh -s /bin/bash または chsh -s /bin/zsh |
いよいよ環境変数PATHを確認していきます。
vi ~/.bash_profile
または
vi ~/.zshrc
ちなみにviコマンドの後は「ファイルのパス」です。
/Users/ユーザー名/.ファイル名
で、Finderからも階層を辿れます。
viは、指定ファイルを編集するためのコマンドで テキストエディタを開くイメージを持つといいかもしれません。以下の手順で編集していきます。
|
viコマンドで想定している環境変数PATHの設定がなかったら。
上記のviコマンドの説明を参考にして、挿入(insert)モードで直接書き込みます。
今回の僕の場合だと、以下の2行を追記しました。
export PATH="/usr/local/opt/php@7.4/bin:$PATH"
export PATH="/usr/local/opt/php@7.4/sbin:$PATH"
viコマンドを使わない環境変数PATHの設定
ちなみにviコマンドを使わなくても、ターミナルで以下のようにコマンド実行すれば環境変数PATHの設定はできます。
まずはphp -v
で、現状のPHPバージョンを確認。
さらにwhich php
で、PHPのフルパスを確認。
【bashの場合】
echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
【zshの場合】
echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
その後、ターミナルを再起動してからphp -v
でPHPバージョンが変わったか確認。
でも個人的には、以下のような理由から、viコマンド使うことをオススメします。
・viコマンド使わないで環境変数PATHの設定すると、打ち間違えてもそのまま設定されてしまう。
つまり「気付かずに正しい環境変数PATHをしていない」
そして「前に間違って入れた環境変数PATHが悪さをする」可能性が出てきます。
・viコマンド使えば、「改めて環境変数PATHの設定が確認でき」
「間違っている境変数PATHの削除もできる」
Laravelの必要PHPバージョン
Lravelの必要PHPバージョンといっても、PHPの環境変数PATHの方を先にした後なら
Laravelをインストールするだけです。
まずはターミナルでMAMPの「htdocs」にディレクトリ移動。
cd /Applications/MAMP/htdocs
そしたら念のため、lravel new プロジェクト名
ではなく
composerコマンドでLaravelのバージョン指定をした上でインストールします。
composer create-project "laravel/laravel=8.*" プロジェクト名
これでMAMPの「htdocs」ディレクトリ内に、Laravelができます。
あとはMAMPを起動して、以下のURLでブラウザ表示がうまくいけば・・・成功です!
http://localhost:8888/プロジェクト名/public/
ちなみにLaravelのバージョンが8なら、必要なPHPバージョンは7.3以上です。
参考までに、WikipediaでLaravelを調べると対応一覧表が出てきます。
下記にそのリンク先を載せておきます。
https://ja.wikipedia.org/wiki/Laravel
最後に1つ余談として。
注意すべきは、環境変数PATHで対応した「後」にインストールしたLaravelにすべきということです。
僕は対応前のLaravelをversion7.8.9と作成してから環境変数PATHの設定を直し、
再度MAMP起動してブラウザ表示したのですが、どれも同じエラーがでました。
最初は、「Laravelの必要PHPバージョンは、環境変数PATHの設定でのPHPと足並みさえ揃えば順不同」
だと思っていたのですが、そうではないみたいです。