【2026年9月最新】Composerとは?PHP開発の依存関係管理ツールを初心者向けに完全解説|インストール〜実務コマンドまで
「Composerって聞いたことはあるけど、結局何をするツールなの?」——PHPの開発現場に足を踏み入れると、必ずと言っていいほどこの単語にぶつかります。
Composer(コンポーザー)は、PHPで開発する際に必要な外部ライブラリ(他人が作った便利な機能の部品)を自動で管理してくれるツールです。WordPressのプラグイン管理に近い感覚で、必要な部品を指定するだけでダウンロード・設置・更新までを一括で行ってくれます。
この記事では、Composerの基本概念から具体的なインストール手順、実務で必ず使う主要コマンド、そして非エンジニアの経営者・管理職がこの手の「環境構築」で押さえておくべきポイントまで、順を追って解説します。後半では、弊社(株式会社GENAI)がClaude Codeを使って、こうした開発環境のセットアップ作業をどこまで自動化しているかの実例も紹介します。
この記事を最後まで読むと、次のことが分かります。
01 WHAT IS COMPOSER Composerとは何か?PHP開発における役割 「依存関係管理ツール」を身近な例で理解する
Composerは、PHP用の依存関係管理ツール(パッケージマネージャー)です。2012年に登場して以来、現在のPHP開発ではほぼ標準ツールとして定着しています。代表的なPHPフレームワークであるLaravelやSymfonyも、内部の仕組みとしてComposerを前提に設計されています。
📚 用語解説
依存関係管理ツール(パッケージマネージャー):プログラムが動作するために必要な外部の部品(ライブラリ)を、自動でダウンロード・設置・バージョン管理してくれる仕組み。JavaScriptの世界の「npm」、Pythonの世界の「pip」に相当するのが、PHPの世界のComposerです。
たとえるなら、家を建てるときに必要な部材(木材・釘・配管パーツなど)を、その都度ホームセンターへ買いに行くのではなく、必要なリストを渡すだけで正しい規格の部材一式を届けてくれる業者のようなものです。PHPで何らかの機能(決済処理、画像加工、PDF生成など)を実装したいとき、ゼロから自分で書く代わりに、世界中の開発者が公開している完成度の高い部品を安全に取り込めるのがComposerの価値です。
1-1. Composerがないとどうなるか
Composerが登場する前のPHP開発では、必要なライブラリのZIPファイルを手動でダウンロードし、フォルダに配置し、読み込みのための記述を1つずつ書くという作業が発生していました。ライブラリが別のライブラリに依存している場合(依存の依存)、その連鎖を手作業で追いかける必要があり、バージョンの組み合わせによる不具合(いわゆる「依存地獄」)が頻発していました。
あるライブラリAが「ライブラリBのバージョン2.0以上」を必要とし、別のライブラリCが「ライブラリBのバージョン1.5以下」を必要とする、といった競合が起きる状態です。手作業での管理では発見が難しく、本番環境で初めて不具合が発覚するケースも珍しくありませんでした。Composerはこの組み合わせを自動で解決(依存解決)してくれます。
1-2. Composerが解決する3つの問題
📚 用語解説
Packagist:Composerが参照するデフォルトのパッケージ登録サイト(https://packagist.org)。世界中の開発者が公開しているPHPライブラリが40万件以上登録されており、Composerはここから必要なパッケージを検索・取得します。
02 INSTALLATION Composerのインストール方法 Windows / Mac / Linux それぞれの手順
Composerを使うには、まずPHP本体がインストール済みであることが前提になります。PHPが入っていない場合は、先にPHP(バージョン7.2以上、できれば8系を推奨)をインストールしておいてください。
2-1. 事前に必要な環境
| 項目 | 必要なバージョン目安 | 備考 |
|---|---|---|
| PHP | 7.2以上(推奨: 8.1以上) | 公式サイトまたはXAMPP等の開発環境同梱版で導入可能 |
| OS | Windows / macOS / Linux | いずれも公式インストーラーまたはスクリプトで対応 |
| ネットワーク | インターネット接続必須 | Packagistからパッケージをダウンロードするため |
2-2. Windowsでのインストール手順
php.exeのパスを求められる画面で誤ったフォルダを指定すると、インストール後に「composerは、内部コマンドまたは外部コマンド…として認識されていません」というエラーが出ます。この場合はComposerを一度アンインストールし、PHPの実際のインストール先(例: C:\php\php.exe)を再指定してください。
2-3. Mac / Linuxでのインストール手順
Mac・Linuxではターミナルから以下のコマンドを順に実行します(公式サイトに掲載されているインストールスクリプトの一般的な流れです)。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" でインストーラーを取得php composer-setup.php を実行し composer.phar を生成mv composer.phar /usr/local/bin/composer でどこからでも実行できる場所へ移動composer -V でバージョンが表示されればインストール完了📚 用語解説
composer.phar:Composer本体の実行ファイル(PHP Archiveというプログラムをひとまとめにした形式)。Windows版インストーラーは内部でこれを自動配置しますが、Mac/Linuxでは手動で配置場所を指定する必要があります。
Macでインストール後に「command not found: composer」と表示される場合、composer.pharの配置先(/usr/local/bin)がPATH(コマンドを探す場所のリスト)に含まれていないことが原因です。ターミナルでecho $PATHを実行し、/usr/local/binが含まれているか確認してください。
03 CORE COMMANDS Composerの主要コマンド完全解説 実務で頻繁に使う7つのコマンドを押さえる
Composerには多数のコマンドがありますが、実務で頻繁に使うのは以下の7つに絞られます。まずは全体像を一覧で確認しましょう。
| コマンド | 役割 | 使用タイミング |
|---|---|---|
| composer init | composer.jsonを対話形式で新規作成 | プロジェクト立ち上げ時 |
| composer require | 新しいパッケージを追加する | 機能追加でライブラリが必要になったとき |
| composer install | composer.lockの内容通りに一括インストール | 他人が作った環境を自分のPCに再現するとき |
| composer update | 依存パッケージを最新版に更新しlockを再生成 | ライブラリを最新化したいとき |
| composer search | Packagist上のパッケージを検索 | どんなライブラリがあるか調べるとき |
| composer show | インストール済みパッケージの情報を表示 | 現在の依存関係を確認したいとき |
| composer list | 利用可能な全コマンド一覧を表示 | コマンドを忘れたとき |
3-1. composer init — プロジェクトの立ち上げ
新規プロジェクトを始めるとき、composer initを実行すると、プロジェクト名・説明・作者名などを対話形式で入力するだけでcomposer.jsonという設定ファイルが自動生成されます。このファイルが、そのプロジェクトで使う全てのライブラリを記録する「部品リスト」の役割を果たします。
3-2. composer require — パッケージの追加
たとえば日付操作を便利にするライブラリを追加したい場合、composer require nesbot/carbonのように「ベンダー名/パッケージ名」を指定するだけで、ダウンロード・composer.jsonへの追記・composer.lockの更新までが自動で行われます。開発時にしか使わないテスト用ライブラリなどはcomposer require --devで区別して追加します。
📚 用語解説
composer require --dev:本番環境では不要だが、開発中のテストやコード品質チェックにだけ使うライブラリを追加するオプション。本番サーバーにデプロイする際は--no-devオプションを付けてインストールすることで、余分なファイルを含めずに済みます。
3-3. composer install と composer update の違い
この2つは初心者が最も混同しやすいコマンドです。composer installはcomposer.lockに記録された「厳密なバージョン」通りに再現するコマンドで、composer updateは最新版を探しに行きlockファイルそのものを書き換えるコマンドです。
他の人が作った環境を自分のPCに再現したいとき → composer install
意図的にライブラリを最新化したいとき → composer update
間違えてupdateを実行すると、想定外のバージョンに切り替わり不具合が出ることがあるため注意が必要です。
本番サーバーで不用意にcomposer updateを実行すると、動作確認していない最新バージョンのライブラリが本番に反映されてしまう可能性があります。本番環境では基本的にcomposer installのみを使い、バージョン更新は開発環境で検証してから反映するのが安全な運用です。
3-4. composer search / show / list — 調べる系コマンド
composer search キーワードでPackagist上の該当パッケージを検索でき、composer showで現在インストール済みのパッケージ一覧とバージョンを確認できます。composer listはComposer自体が持つ全コマンドの一覧を表示するので、操作に迷ったときのリファレンス代わりに使えます。
使いたい機能の
ライブラリを探す
見つけたパッケージを
プロジェクトに追加
別の環境で
同じ構成を再現
現在の依存関係を
確認
04 CONFIG FILES composer.json と composer.lockの役割 2つの設定ファイルの違いを正確に理解する
Composerを使ったプロジェクトには必ずcomposer.jsonとcomposer.lockという2つのファイルが存在します。名前が似ているため混同されがちですが、役割は明確に異なります。
| ファイル | 役割 | 中身の性質 |
|---|---|---|
| composer.json | このプロジェクトが必要とするライブラリの「希望条件」を書く | 人間が編集する設定ファイル |
| composer.lock | 実際にインストールされた「厳密なバージョン」を記録する | Composerが自動生成・自動更新するファイル |
📚 用語解説
composer.lock:composer installやcomposer requireを実行した瞬間の「正確なバージョンの組み合わせ」をスナップショットのように記録するファイル。このファイルをGit等でチーム内に共有することで、全員が全く同じバージョン構成で開発できます。
composer.jsonには「バージョン2系ならなんでも良い」といった幅を持たせた条件を書くのが一般的です。一方composer.lockには「2.4.1」のような一意に確定したバージョンが記録されます。composer installはこのlockファイルを見て、寸分違わぬバージョンを再現しようとします。
結論から言うと含めるべきです。lockファイルを共有しないと、チームメンバーごとに微妙に異なるバージョンのライブラリがインストールされ、「自分の環境では動くのに他の人の環境では動かない」という典型的な事故につながります。
4-1. vendorフォルダとautoload.php
composer install / requireを実行すると、プロジェクト直下にvendorフォルダが生成され、その中にダウンロードされたライブラリ本体が格納されます。あわせてvendor/autoload.phpというファイルも自動生成され、プログラムの先頭でこの1行を読み込むだけで、インストールした全ライブラリの機能が使えるようになります。
📚 用語解説
オートローディング(autoload):プログラムの中で使うクラス(機能の部品)を、使う場所ごとに手動でrequireせず、必要になったタイミングで自動的に読み込んでくれる仕組み。ComposerはPSR-4という業界標準規格に沿ったオートローディングの設定を自動生成してくれます。
vendorフォルダは中身が大きく、かつcomposer installでいつでも再生成できるため、Gitの管理対象から除外(.gitignoreに追加)するのが一般的な運用です。composer.jsonとcomposer.lockさえ共有されていれば、vendorフォルダは各自の環境で再構築できます。
05 VERSION CONSTRAINTS バージョン制約の書き方と実践Tips 「^」「~」「>=」の意味を正確に押さえる
composer.jsonでライブラリのバージョンを指定する際、いくつかの記号(バージョン制約)を使い分けます。これを正確に理解していないと、意図しないバージョンアップが起きて本番障害につながることがあります。
| 記法 | 意味 | 具体例 |
|---|---|---|
| ^2.4 | メジャーバージョンを固定し、それ以外は最新を許可 | 2.4.0以上 3.0.0未満まで許可 |
| ~2.4 | 末尾1桁を固定して更新を許可 | 2桁指定(~2.4)は 2.4.0以上 3.0.0未満(^2.4と同じ範囲)。~2.4.1のように3桁指定した場合のみ 2.4.1以上 2.5.0未満に狭まる |
| 2.4.1 | 完全固定(このバージョンのみ) | 2.4.1のみ |
| >=2.4 | 指定バージョン以上ならすべて許可 | 将来のメジャーアップデートも含む(非推奨) |
📚 用語解説
セマンティックバージョニング(SemVer):ソフトウェアのバージョン番号を「メジャー.マイナー.パッチ」の3つの数字で管理するルール。メジャー番号が変わるときは互換性のない大きな変更、マイナーは機能追加、パッチは不具合修正、という意味を持たせる業界慣習です。Composerのバージョン制約はこのルールを前提に設計されています。
実務では^(キャレット)を使うのが最も一般的です。セキュリティ修正や小さな不具合修正は自動的に取り込みつつ、互換性が壊れる可能性のあるメジャーアップデートは意図的に行うまで防いでくれる、バランスの良い書き方です。
5-1. 依存関係の競合が起きたときの対処
複数のライブラリが同じ依存先ライブラリに対して異なるバージョン条件を要求すると、Composerは「解決不能な依存関係です」という趣旨のエラーを出します。この場合、まずcomposer why-not パッケージ名 バージョンのようなコマンドで原因を特定し、要求バージョンの緩いライブラリ側を先にアップデートする、という手順で解消していきます。
06 FOR NON-ENGINEERS 【独自】非エンジニアが知っておくべき「環境構築が重い理由」 エンジニアの工数を経営目線で理解する
ここからは視点を変えて、自社にエンジニアを抱える経営者・管理職に向けた内容です。「Composerのインストールに手間取っている」「環境構築で1日潰れた」という報告を受けたとき、それが本当に妥当な工数なのかを判断する材料を持っておくことは、開発チームのマネジメントにおいて意外と重要です。
6-1. 環境構築が「重い作業」になりがちな3つの理由
つまり、環境構築でエンジニアが時間を取られるのは怠慢ではなく、そもそも変数が多く、再現性の低い作業であることが多いのです。この構造を理解しておくと、「なぜこんな単純作業に時間がかかるんだ」という誤った評価を避けられます。
環境構築に時間がかかっていると報告を受けたら、「何に一番時間を取られたか」を具体的に聞いてみてください。多くの場合、インストール自体ではなく依存関係の競合解決やドキュメントとの照合作業に時間がかかっています。ここが自動化・AI活用の余地が最も大きい部分です。
📚 用語解説
環境構築(かんきょうこうちく):プログラムを実際に動かすために必要なソフトウェア一式(PHP本体、Composer、データベースなど)を、特定のPC・サーバー上に揃える作業全般を指すエンジニア用語。「セットアップ」とほぼ同義で使われます。
07 GENAI CASE STUDY 【独自データ】Claude Codeで環境構築・Composer操作を代行させる 弊社が実際にどこまでAIエージェントへ任せているか
弊社(株式会社GENAI)ではClaude Max 20xプラン(月額$200、約30,000円)を契約し、経営・営業・広告・経理・秘書業務に加えて開発案件のスクリプト書き捨て・環境構築にもClaude Codeを日常的に使っています。ここでは、Composerのようなコマンドライン操作をAIエージェントにどこまで任せられるかを、実運用の感覚で共有します。
| 作業内容 | 従来の所要時間(目安) | Claude Code活用時 |
|---|---|---|
| PHP環境の新規構築・Composer導入 | 半日〜1日(初見の場合) | 数十分(指示から実行・検証まで) |
| 依存関係エラーの原因特定 | 30分〜数時間(ログを読み解く時間) | エラーログを渡すだけで数分で切り分け |
| composer.jsonの手動編集 | 数分〜(バージョン記法の確認込み) | 要望を伝えるだけで正しい記法を反映 |
上記は弊社の肌感ベースの数値であり、プロジェクトの複雑さや既存コードの状態によって変動します。あくまで「AIエージェントを環境構築作業に組み込むとどの程度の体感差が出るか」の参考情報としてご覧ください。
Claude Codeは、ターミナル上のコマンド実行・ファイル編集・エラーログの解析までを一連の流れとして自律的に行えるエージェント型のAIです。「Composerを入れてプロジェクトを初期化して」「このエラーログの原因を調べて直して」といった日本語の指示を渡すだけで、必要なコマンドを自分で判断して実行してくれます。
日本語で
やりたいことを伝える
Claude Codeが
必要なコマンドを判断
実行結果・エラーを
自動で確認
問題があれば
自律的に修正・再実行
もちろん、Composerの仕組みそのものを理解している方が、AIの出力を検証する精度は上がります。ですので、この記事で紹介した基礎知識と、AIエージェントによる実行代行は対立する話ではなく併用するものだと捉えてください。「何をしているか分かった上で、実際の手数はAIに任せる」というのが、非エンジニアの経営者にとって最も現実的なスタンスです。
7-1. 非エンジニアがAIエージェントに任せる際の注意点
08 CONCLUSION まとめ ── Composerの基礎と、環境構築の未来 知識とAI活用は両立する
この記事では、Composerの基本概念、インストール手順、主要コマンド、composer.json/lockの役割、バージョン制約の考え方、そして非エンジニアが押さえておくべき視点までを整理しました。最後にポイントを振り返ります。
最後にお伝えしたいのは、「Composerを覚えること」と「AIエージェントに任せること」は対立しないという点です。基礎を理解している人ほど、AIの出力を正しく検証でき、結果として開発全体のスピードと安全性の両方が上がります。
開発チームの工数配分、AIエージェントでどこまで圧縮できるか診断します
環境構築・依存関係トラブル対応など、目に見えにくいエンジニア工数をどこまでAIに任せられるか。
弊社の実運用ノウハウをベースに、個別に導入設計のご相談を承ります。
ここから先の進め方は、大きく2つあります。
自社で回せるようになりたい方は、AI鬼管理でClaude Code/Codexの使い方から業務設計・社内定着まで伴走を受けながら、社内に仕組みを作る道があります。
覚えるより任せたい方は、AI社員AIKATAでこの記事のような定型業務を丸ごと預ける道があります。料金は月30万円の月額定額、追加費用は0円です。
どちらが合うかは、業務量と社内体制次第です。無料相談・無料適合診断で、貴社の場合はどちらが向くかからご相談いただけます。
NEXT STEP
この記事の内容を、あなたのビジネスで
実践してみませんか?
よくある質問
Q. Composerは無料で使えますか?
A. はい、Composerは完全に無料のオープンソースソフトウェアです。商用プロジェクトで利用する場合も追加費用は発生しません。
Q. ComposerとnpmやAI・pipの違いは何ですか?
A. 役割は同じ「依存関係管理ツール」ですが、対象言語が異なります。npmはJavaScript/Node.js、pipはPython、Composerは PHP用のパッケージマネージャーです。基本的な考え方(依存関係の自動解決、ロックファイルによる再現性確保)は共通しています。
Q. composer.lockを削除してしまった場合はどうすればいいですか?
A. composer.jsonが残っていれば、composer installまたはcomposer updateを実行することで新しいcomposer.lockが再生成されます。ただし、以前と全く同じバージョンが再現される保証はないため、削除前にGitなどでバックアップを取っておくことを強く推奨します。
Q. グローバルインストールとプロジェクト単位のインストール、どちらを使うべきですか?
A. Composer本体はグローバル(PC全体)に1つインストールするのが一般的です。一方、Composerで管理するライブラリ(vendor配下のパッケージ)はプロジェクトごとに個別管理するのが標準的な運用です。
Q. 非エンジニアでもComposerのエラーに対応できますか?
A. 完全に一人で対応するのは難易度が高いですが、エラーメッセージをそのままClaude CodeのようなAIエージェントに渡すことで、原因の切り分けや対処法の提示までは非エンジニアでも進められます。最終的な本番反映の判断は、エンジニアまたは十分な検証の上で行うべきです。
Q. Composerを使わずにPHPライブラリを利用することはできますか?
A. 技術的には可能ですが、依存関係の管理・バージョン整合性の担保・オートローディングの設定などをすべて手動で行うことになり、現在の実務水準では現実的ではありません。特別な理由がない限りComposerの利用が推奨されます。
Q. Claude Codeに環境構築を任せる場合、費用はどれくらいかかりますか?
A. 弊社が契約しているClaude Max 20xプランは月額$200(約30,000円)で、環境構築を含む複数の業務用途で共有して使っています。API従量課金とは異なり定額制のため、使えば使うほど追加費用がかさむ心配がない点が導入しやすいポイントです。
Claude Codeで業務自動化を90日で叩き込む
経営者向けの伴走型パーソナルトレーニング
AI鬼管理/AI社員AIKATAへのお問い合わせ
この記事を読んで気になった方へ。
専門スタッフが、御社に最適な
業務自動化・業務代行プランを無料でご提案します。




