Amazon Linux 2023 に PHP モジュール をインストール
Amazon Linux 2023 で PHP の拡張機能(モジュール)を追加し、設定情報を確認する方法を解説します。本記事では、以下の 2 つの方法を比較しながら、実際の手順を説明します。
✅ dnf
を使った公式モジュールのインストール
✅ pecl
を使った拡張モジュールのインストール
📦 レポジトリ(Repository)とは?
レポジトリとは、ソフトウェアパッケージを管理・提供する場所のことです。Linux のパッケージ管理システム(yum
や dnf
)では、レポジトリを参照して必要なパッケージをダウンロード・インストールします。
Amazon Linux 2023 の公式リポジトリは Fedora や CentOS Stream をベースに独自管理されています。公式リポジトリ外のパッケージを取得するには Remi リポジトリの追加が有効ですが、Amazon Linux 2023 では 従来の Amazon Linux 2 で利用できた rpm
ベースの方法が使えず、dnf config-manager
を用いたリポジトリ登録が必要になります。
⚙️ PHP のインストール方法の比較
dnf
を使用したインストール
1️⃣ - 公式リポジトリから提供されるパッケージを利用
- 依存関係の自動解決とシステム統合が可能
- PHP 本体や主要な拡張モジュールのインストール向き
pecl
を使用したインストール
2️⃣ - PHP 拡張コミュニティ(PECL)から取得し、ソースビルドでインストール
- 最新機能を利用できるが、依存関係は手動解決が必要
dnf
と pecl
の比較表
🐤 項目 | dnf | PECL |
---|---|---|
提供元 | 公式リポジトリ | PHP拡張コミュニティ(PECL) |
用途 | PHP 本体+主要拡張 | PHP 拡張モジュールのみ |
適用範囲 | システム全体 | PHP の拡張機能のみ |
インストール方法 | dnf install <モジュール名> |
pecl install <モジュール名> |
インストール可能なモジュールの確認 | dnf search <モジュール名> |
pecl search <モジュール名> |
インストール確認 | dnf list installed <モジュール名> |
pecl list installed <モジュール名> |
設定ファイルの生成 |
/etc/php.d/ に自動作成 |
/etc/php.d/*.ini に手動で追加 |
アンインストール | dnf remove <モジュール名> |
pecl uninstall <モジュール名> 後、関連する設定ファイルを削除 |
📌 その他 便利なコマンド
-
dnf
でインストールするパッケージに含まれるファイル(ライブラリを含む)を表示
dnf repoquery -l <パッケージ名>
🛠️ PECL による拡張機能カスタムインストール
dnf install
では /etc/php.d/
配下に自動で .ini
ファイルが作成されますが、pecl
でインストールした拡張モジュールは手動設定が必要な場合があります。
sqlsrv
拡張モジュール)
📝 設定ファイルの作成例(# PECL で拡張をビルド&インストール
pecl install sqlsrv
# 設定ファイルを登録し、モジュールを有効化
echo "extension=sqlsrv.so" | sudo tee /etc/php.d/20-sqlsrv.ini
# PHP-FPM を再起動
sudo systemctl restart php-fpm
適用状況を確認するには以下を実行します。
php --ini | grep sqlsrv
このコマンドで /etc/php.d/20-sqlsrv.ini
が表示されれば、正しく設定されています。
🔍 PHP 設定情報の確認
PHP の設定情報を確認するためによく使用される php -m
と php -i
コマンドを紹介します。
php -m
1️⃣ - 目的:インストールされている PHP モジュール(拡張機能)の一覧を表示
- 出力:簡潔なリスト形式
- 用途:特定のモジュールが有効かどうかを素早く確認
php -m
コマンドで出力される一覧には、PHP のコアモジュール、dnf
でインストールされた拡張モジュール、および pecl
でインストールされ、かつ .ini
設定ファイルで有効になっている拡張モジュールが含まれます。
特定のモジュール(例:sqlsrv)がインストールされているか確認するには grep
を使用します。
php -m | grep -i sqlsrv
php -i
2️⃣ - 目的:PHP の詳細な設定情報を表示
- 出力:
phpinfo()
関数と同等の詳細な情報 - 用途:PHP の環境設定、コンパイルオプション、拡張モジュールの詳細情報などを確認
特定の情報を抽出したい場合は、grep コマンドと組み合わせて使用できます。
📌 よく使用される例
- 有効な拡張モジュールを確認する
php -i | grep extension_dir
拡張モジュールが保存されているディレクトリのパス(例:/usr/lib64/php8.3/modules/
)を確認できます。
- タイムゾーン設定を確認する
php -i | grep "date.timezone"
- メモリ制限を確認する
php -i | grep "memory_limit"
🩵 おわりに
本記事では、Amazon Linux 2023 における PHP の拡張モジュールの追加方法と、確認方法について解説しました。
もしご指摘やアドバイスがありましたら、コメントいただけますと幸いです📝
えみり〜でした|ωΦ)ฅ
📜 参考リンク
🔗 PECL インストール入門
🔗 【 dnf 】コマンド(基礎編)――ソフトウェア(パッケージ)をインストールする
🔗 How do I compile PHP extensions on Amazon Linux 2023?
🔗 Amazon Linux 2023を触ってみて質問がありそうなことをまとめてみました。
🔗 Amazon Linux 2023 の初期設定が Amazon Linux 2 と違いすぎて戸惑ったので、その内容と対処方法のまとめ
Discussion