🐘
[Laravel11]動作に必要なPHP拡張の確認
解決したいこと
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