🐘

[Laravel11]動作に必要なPHP拡張の確認

2024/06/09に公開

解決したいこと

Laravel11のドキュメントによると、以下のPHP拡張のインストールが必須と記載されている。

  • Ctype PHP Extension
  • cURL PHP Extension
  • DOM PHP Extension
  • Fileinfo PHP Extension
  • Filter PHP Extension
  • Hash PHP Extension
  • Mbstring PHP Extension
  • OpenSSL PHP Extension
  • PCRE PHP Extension
  • PDO PHP Extension
  • Session PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension

これらの拡張がデプロイ予定のWebサーバーにインストールされているか・不足している場合どの拡張が足りないのかを確認したい。

解決策

サーバーの任意のディレクトリで以下のシェルスクリプトを作成

check_extensions.sh

#!/bin/bash

# チェックしたいモジュールのリスト
modules="ctype curl dom fileinfo filter hash mbstring openssl pcre pdo session tokenizer xml"

# インストールされているモジュールのリストを取得
installed_modules=$(php -m)

# チェックしたいモジュールがインストールされていない場合に出力
for module in $modules; do
  echo "$installed_modules" | grep -iqw "$module" || echo "$module is not installed"
done

シェルスクリプトを実行

chmod +x check_extensions.sh
./check_extensions.sh

不足しているPHP拡張があれば以下のようにメッセージが出力される(mbstringがインストールされていない例)

mbstring is not installed

Discussion