読む・知る
Composer の紹介
Composerは、PHPプロジェクトで使うライブラリの導入と更新を管理する、無料のオープンソースツールです。必要なパッケージとバージョン条件を設定し、依存するライブラリもまとめて扱えます。Windows・macOS・Linuxに対応しており、PHPを使って開発・保守する人に向いています。 公式の紹介
公式サイト: getcomposer.org
主な特徴
設定と固定バージョンを分けて管理できる
composer.jsonには、プロジェクトで使いたいパッケージとその条件を記述します。composer.lockには、解決された依存パッケージの具体的なバージョンが保存されます。アプリケーション開発では、このロックファイルを共有することで、環境ごとの導入内容のずれを抑えられます。
installとupdateで作業の目的が異なる
ロックファイルがあるプロジェクトでinstallを実行すると、その記録に基づいて導入します。updateは依存関係を解決し直してロックファイルも更新するため、既存のアプリケーションとの互換性確認が必要です。単に開発環境を再現したいときに、無条件で全体を更新する必要はありません。 公式の基本操作
ライブラリの検査を普段の保守に組み込める
auditは、設定された情報源のセキュリティ情報などとパッケージを照合します。--lockedを指定すると、vendorディレクトリの状態とは別に、ロックファイルに記録されたパッケージを対象にできます。結果に問題が表示されたら、対象パッケージと影響するバージョンを確認し、更新方法を検討します。 公式CLIリファレンス
対応OSと料金
| 項目 | 内容 |
|---|---|
| 対応OS | Windows、macOS、Linux |
| 操作方法 | 主にターミナルやコマンドプロンプト |
| 必要なもの | 対応するPHP実行環境。必要な拡張機能などは公式の要件を確認 |
| 本体の料金 | 無料 |
| ライセンス | MIT |
PHPの最低動作要件を満たしていても、そのPHPが現在セキュリティ保守を受けているとは限りません。サポート対象の実行環境を選んでください。CLIの説明は英語のコマンド名を中心に確認すると、公式文書と照合しやすくなります。
Composer本体と、Private Packagistなどの商用サービスは別です。利用するライブラリ、プラグイン、私有リポジトリにも、それぞれの利用条件があります。本体を改変・再配布する場合は、MITの著作権表示と許諾表示を保持する条件を確認します。 公式ライセンス
使い方
1 公式の手順で導入する
Windowsでは公式文書のインストーラー案内を確認します。macOS・Linuxでは公式ダウンロードページにある、その時点のインストールと検証の手順を使います。インストーラーの検証用ハッシュは更新されるため、古い記事の値をそのまま流用しないようにしてください。
導入できたら、ターミナルでバージョンを確認します。PATHを通した構成の例です。
composer --version プロジェクト内にPHARを置いた構成では、公式文書に従ってphp composer.pharで起動します。 公式インストール案内
2 プロジェクトの依存関係を導入する
内容と入手元を確認したプロジェクトで、composer.jsonのあるディレクトリへ移動して実行します。
composer install 既存のcomposer.lockがあれば、その記録に基づいて導入します。ロックファイルがない場合は依存関係の解決も行われるため、他の人と共有するプロジェクトではファイルの扱いを確認してください。
3 ロックファイルのパッケージを検査する
composer audit --locked 結果に問題が表示された場合は、パッケージ名、該当する情報、影響するバージョンを読みます。更新する場合は検証環境で互換性を確認し、composer.lockの差分とアプリケーションの動作を確認してから反映します。警告を消す目的だけで、無条件に全依存関係を変更しないようにします。
安全性と注意点
installやupdateでは、プロジェクトの設定に応じてスクリプトやプラグインが実行される場合があります。入手元や設定を確認していないプロジェクトで、管理者権限のまま実行する使い方は避けてください。外部との通信や依存パッケージの取得も発生します。 ComposerのCLIと設定
また、auditの検査対象はComposerが管理するパッケージです。独自コードや、Composerに登録されていないWordPressプラグインなどのすべてを検査するものではありません。PHP本体の脆弱性に対しては、サーバー側のPHP更新が別途必要です。検査結果だけでサーバー全体の安全性を保証できません。
向いている人
- PHPプロジェクトで複数のライブラリを使っている人。
- チームや開発・検証環境で依存パッケージの版をそろえたい人。
- ライブラリの脆弱性情報を日常の保守で確認したい人。
向いていない人
- Webサイトを閲覧するだけで、PHPの開発やサーバー管理をしない人。
- PHP本体のセキュリティ更新を、Composerだけで済ませたい人。
- GUIだけでWebサイト全体を検査するツールを探している人。
関連ソフト
Composerを動かす実行環境は PHP です。コンテナやパッケージの検査を行うTrivy、Webアプリケーションの通信を検査するZAPとは役割が異なります。必要な検査対象に応じて使い分けます。
FAQ
無料で使えますか
Composer本体はMITライセンスの無料ソフトです。外部の有料サービスや依存パッケージの利用条件は別に確認します。
installとupdateはどちらを使いますか
既存のロックファイルで環境を再現するならinstall、依存関係を更新するなら変更範囲を決めたうえでupdateを使います。後者では動作確認が必要です。
auditで問題がなければPHPの更新は不要ですか
不要にはなりません。ライブラリの監査と、PHP実行環境のセキュリティ更新は別です。