AlmaLinux9.3にPHP8.3を入れてLaravel9から10にバージョンアップする

こんにちは。エンジニアの君島です。

 

今回は、AlmaLinux9.3のサーバにLaravelをインストールする手順をまとめます。

採用するバージョンを選定した経緯から、いざ構築しようとした時に出てくるちょっとした課題

  • OSでサポートされているものより新しいバージョンのPHPをインストールしたい
  • バージョン指定してLaravelプロジェクトを作りたい
  • php artisan serveであげたサーバにlocalhost以外からもアクセスしたい
  • Laravel9から10にバージョンを上げたい

 

これらの解決など、いくつかのトピックが含まれている内容となっています。

 

準備

OSのバージョン確認

以下のコマンドでOSのバージョンを確認することができます。今回はAlmaLinux9.3で操作してみます。

 

構築するバージョンを定める

PHPのEOL確認

PHPのページでバージョンごとのEOLが表現されています。今日の日付も入っているのでより分かりやすいですね。

 

 

これを見ると、現在リリースされている中で、EOLを迎えていないのは8.1以降になり、最新は8.3のようです。

 

AlmaLinux9.3の標準パッケージ

続いてAlmaLinux9.3でサポートしているPHPのバージョンを確認してみましょう。以下のコマンドで確認をすることができます。

 

 

どうやらPHP8.1のようです。8.1はすでにSecurity Fixのみとなっているので、より新しいバージョンにしておきたいですね。

 

LaravelのEOL確認

続いて、Laravelも同様にサポートされているバージョンが公開されています。こちらのリンクでは、表形式でわかりやすく表現されていました。

 

 

インストールするバージョンを決める

Laravelの方で対応しているPHPバージョンをよく見てみましょう。本番ワークロードでは、しっかりとサポートしている組み合わせが良いと思います。

今回は、PHPはリリースしたばかりの8.3、そして、Laravel9を入れた後、10にバージョンアップする手順を試してみます。

 

構築

PHP8.3のインストール

先ほど確認した通り、AlmaLinux9.3でサポートしているPHPは8.1でしたので、それより新しいバージョンを入れたい場合は、remiリポジトリをインストールしましょう。

もちろんOSでサポートはされていないバージョンですので、自己責任ではあります。

 

 

そうすると、モジュールを確認すると他のバージョンを選択することができます。

 

 

それではPHP8.3をインストールしましょう。モジュールをバージョン指定の上で有効化してインストールしてください。

 

 

Composerのインストール

こちらはComposerのインストール手順です。特に変わったことはしていません。

 

 

Laravel9のプロジェクト作成

事前にプロジェクトを展開するディレクトリとその権限を変更しておきます。AWS Systems Managerのセッションマネージャーでサーバにアクセスしているため、ssm-userを使っています。

 

 

続いて、Laravel9のプロジェクトを作成しましょう。composerのcreate-projectを利用すればよいのですが、バージョンを指定しないと、最新の10になってしまいます。

今回は意図的にバージョン9のLaravelプロジェクトを作成したいので、コマンドの最後にバージョン指定をしておきましょう。

 

外部からアクセス可能な状態でサーバ起動する

Laravelプロジェクトが作成できたので、実際にWebサーバを起動して画面表示ができるか確認してみましょう。

artisanに含まれているbuilt-inのサーバを起動するコマンドがあります。ただし、オプションを指定せずに

 

とするとデフォルトではhostがlocalhostとなります。そのため、他の端末からサーバのIP経由でのアクセスできません。そのような時はhostオプションを使って、

 

 

この状態で、ブラウザでhttp://<サーバのIP>:8000にアクセスすると、以下のようにLaravelの最初の画面が確認できます。

画面の右下にて、バージョンを確認することもできます。

 

もちろんartisanコマンドでもバージョン確認をすることができます。

 

Laravel10へバージョンアップ

それでは、今度はLaravelフレームワークをバージョンアップしてみましょう。

手順は、アップグレードのドキュメントを見ながら進めていきましょう。

Composerのバージョンは2.2以降のようです。こちらは、入れたばかりなので新しいバージョンになっています。

 

 

これ以降はcomposer.jsonを書き換えていきましょう。なお、修正を行うときはgitで管理されている環境で編集を行うようにしましょう。gitはいざ、修正を戻したい場合に戻すことができる命綱の役割をしてくれます。

今回は、作成したばかりのLaravelプロジェクトなのでcomposer.jsonの該当する箇所だけの修正ですが、通常はこれに加えてソース自体もLaravel10に合わせた修正が必要となります。修正規模に関わらず、ソースを編集をする場合は、git管理化で作業することをおススメします。

 

以下はgit diffで出した差分になります。-がある行が変更前、+がある行が変更後になります。

 

以下を変更したら、composerをupdateしましょう。

composer update

 

正常にupdateが終了したら、再度サーバを起動してブラウザでアクセスします。

 

Laravelのバージョンが上がって画面表示もできたことが確認できますね。

 

まとめと告知

AlmaLinux9.3の環境にPHP8.3を入れて、Laravel10のプロジェクトを作成した手順を紹介しました。

Laravel9で作成したプロジェクトを10にアップグレードしていますが、これは私がアップグレードの手順を確認したかったため、回りくどいことをしています。

作成時にバージョン指定しなければ、composerのバージョンに応じて最新のLaravelプロジェクトを作成してくれます。

また、インストールするバージョンを選定するにあたって、どのような内容を見て判断したのか、Laravelのバージョンアップをするときにどのような情報を見ているのかといったリンクも載せています。

加えて、構築していたり、検証しようとして引っ掛かるようなちょっとしたポイントと解決方法も記載しました。

 

告知

カジュアル面談も実施中

ギークフィードではAWSエンジニアなどの職種で一緒に働く仲間を募集しています。

弊社に興味を持っていただいたり、会社のことをカジュアルに聞いてみたいという場合でも、ご気軽にフォームからお問い合わせください。その場合はコメント欄に、カジュアルにお話したいです、と記載ください!

 

採用情報はコチラ

この記事が気に入ったら
いいね ! しよう

Twitter で
The following two tabs change content below.
君島翔
君島翔
AI事業部事業部長株式会社ギークフィード
Java, .NET系の言語が得意。Laravelも使います。 エディタはvim派。 自分が楽するためにテストやビルド、デプロイを自動化させたい。 2022-2023 AWS Ambassador / 2022-2023 Japan AWS Top Engineer / 2022-2023 Japan AWS ALL Certifications Engineer

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ