Laravel

Laravel・ロリポップ【エラー解決】Composer detected issues in your platform: Your Composer dependencies require a PHP version “>= 7.4.0”.

こんにちは!ユウナです。

私は現在、ロリポップ ライトプランにてLaravelアプリケーションを動かしています。

ほんの3か月前であれば「composer create-project laravel/laravel –prefer-dist XXXXX」で作成したLaravelアプリが動いていたのが、昨日新規プロジェクトを作成した際に、表題のようなエラーが出ました。

この記事では、その解決策を紹介していきます。

環境

  • レンタルサーバ・・・ロリポップライトプラン
  • PHPバージョン・・・7.3(CGI)
  • composerバージョン・・・2.1.5 2021-07-23 10:35:47
  • Laravelバージョン・・・Laravel Framework 8.56.0

それぞれのバージョン確認方法・コマンド

ロリポップでのPHPバージョン確認方法

https://user.lolipop.jp/?mode=php

  1. ログインする
  2. ログイン後画面左サイドバーにある「サーバーの管理・設定」を開く
  3. 「PHP設定」を開く

composerバージョン確認方法

  1. composerを入れた際に入った「composer.phar」のディレクトに移動する
  2. SSHなどでコマンド「/usr/local/php/7.4/bin/php composer.phar composer -V」を打つ
    ※ロリポップの場合は「/usr/local/php/バージョン/bin/php」となります。エックスサーバーでは「php」単体だけでできます。

※ロリポップライトプランではSSH接続はできません。この図は同じcomposer.pharバージョンであるロリポップエンタープライズプランでSSH確認した時の図となります。

※Windows10などローカルで行う際は、コマンドプロンプトでコマンドを打てばバージョン確認が可能です。

Laravelバージョン確認方法

  1. プロジェクト名ディレクトリに移動する(appフォルダや.envファイルがある階層です)
  2. URLバーに「cmd」を打ち、コマンドプロンプトを起動する
  3. コマンド「php artisan -V」を打つ

エラーが発生した流れ

まず、ローカルPCで「composer create-project laravel/laravel –prefer-dist XXX」をして最新のプロジェクトで作成しました。

その後、開発を進め、テスト環境として契約しているレンタルサーバ「ロリポップライトプラン」にデプロイしました。

最後に、そのアプリケーションのパス「http://domain.com/XXXXX/public」へアクセスしました。

※ロリポップ側でリダイレクト設定をしていないので、public直アドレスとなっています。

すると、画面上にこのエラーが出ました。

Composer detected issues in your platform: Your Composer dependencies require a PHP version “>= 7.4.0”.

訳すと、「コンポーザーを動かすにはPHPバージョンが7.4.0以上が必要です」と言われています。

なので、PHPバージョンを上げてあげればいいことになります。

エラー解決方法

ロリポップ上でPHPバージョンを上げる

現在、契約しているライトプランはSSH接続ができません。そのため、SSHからコマンド操作してPHPをアップグレードすることができないので、ロリポップ管理画面から設定します。

手順

  1. この記事の「 ロリポップでのPHPバージョン確認方法 」の通りに進み、PHPバージョン確認画面を開きます。
  2. 「バージョン」欄から、バージョンを上げたいドメインのプルダウンを選択します。
  3. 「設定」ボタンを押して完了です。(約5-10分ほどで反映されます)

私の場合は「7.3(CGI)」となっていたため、7.4(CGI)にアップしました。

だいたい5分ほど経過したあと、再度ブラウザ画面を更新したところ、エラーなくLaravelアプリが起動できました!

お疲れ様でした。

結び

最近契約したロリポップでは、元からPHPバージョンが7.4になっています。

しかし今回私がデプロイした先のロリポップでは、2019年に契約したときのものだったので、バージョンが古かったようでした。

Laravelのバージョン、PHPのバージョン、composer.pharのバージョンの組み合わせは忘れやすいので、皆さんも気を付けてくださいね。