Composerの正しいインストール方法を解説【PHP】

Composerの正しいインストール方法を解説【PHP】 サーバー

Composerのインストールは、ちゃんと理解して進めましょう。
そうじゃないと、無駄なモノまでインストールしてしまいます。

一度でも理解すれば、長く使える知識になります。
今後もPHPと長く付き合うなら、ちょっとだけ時間をかけて理解しませんか?

本記事の内容

  • Composerとは?
  • Composerのシステム要件
  • Composerのインストール
  • Composerの動作確認

それでは、上記に沿って解説していきます。

Composerとは?

PearとComposerは、同じようなパッケージ依存管理ツールです。

ただ、大きな違いがあります。
その違いは、以下の3つです。

  • 影響範囲
  • 読み込み方法
  • 再現性

それぞれを以下で説明します。

影響範囲

Pearは、システム全体に影響を及ぼします。
それに対して、Composerは特定のプロジェクトのみに影響を与えます。

開発サーバー上では、複数のサイト(プロジェクト)を運用することがあります。
このような場合、Composerはその効果を発揮します。

読み込み方法

Pearは、requireやrequire_onceで一つづつ読み込みます。
例えば、5つのライブラリを利用する場合は次のようにコーディングします。

require_once("A.php");
require_once("B.php");
require_once("C.php");
require_once("D.php");
require_once("E.php");

それに対して、Composerでは一つのファイルを読み込むだけです。
5個のライブラリであっても、次のコーディングで済みます。

require_once("vendor/autoload.php");

これは、オートローダという機能によるモノです。

Composerでインストールすると、composer.jsonにその記録が行われます。
そして、composer.jsonに自動で各ライブラリを読み込む情報も記載されています。

再現性

再現性という言葉が、わかりにくいかもしれませんね。
簡単に言うと、同じ環境をすぐに再現できるということです。

Composerでは、この再現が容易に実現できます。
その際、先ほど出てきたcomposer.jsonを利用します。
composer.jsonには、インストールすべきライブラリが記載されています。

このcomposer.jsonをもとに「composer install」を実行するだけです。
これだけで、同じ環境を構築することできます。

なお、composer.lockを利用することもできます。
composer.lockには、実際にインストールしたバージョンまで記載されています。

Pearでは、こんな便利な仕組みは存在していません。
私が知らないだけかもしれませんが。

まとめ

一言で表現するなら、Composerは開発を効率的にしてくれます。
だから、多くの開発者が集まります。

その結果として、便利なライブラリが公開されます。
その便利なライブラリを求めて、また多くの開発者が集まります。
まさに、好循環です。

以上、Composerについて説明しました。
次は、Composerのシステム要件を確認します。

Composerのシステム要件

現時点(2021年6月)でのComposerの最新バージョンは、2.1.1となります。
更新は日々行われているような感じです。

システム要件は、次の3つを確認します。

  • サポートOS
  • php-cli
  • PHPバージョン

それぞれを以下で説明します。

サポートOS

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

公式サイトでは、次のように記載されています。

Composer is multi-platform and we strive to make it run equally well on Windows, Linux and macOS.

クロスプラットフォーム対応に努力しているということです。

php-cli

PHPのバージョンになります。
PHP 5.3.2以降である必要があります。

Composerは、コマンドラインのPHPをベースにして動きます。
そのため、正確にはphp-cliのバージョンが5.3.2以降ということになります。
よって、「php- v」でバージョンを確認すればOKです。

なお、検証ではPHP 8.0を利用しています。
PHP 8.0のインストールに関しては、次の記事で解説しています。

まとめ

php -v

上記のコマンドにより、Composerのシステム要件は確認可能です。
php-cliのインストール状況、PHPのバージョンを一気に確認できます。

あと、これら以外にも必要な設定が存在しています。
それらに関しては、インストールの際にインストーラーがチェックしてくれます。
したがって、インストーラー経由でのインストールを行います。

以上、Composerのシステム要件についての説明でした。
次は、Composerをインストールしていきます。

Composerのインストール

Composerは、単なるPharファイルでした。
Javaにおけるjarと似たようなモノが、pharとなります。

そして、composer.pharは実行可能なファイルです。
よって、Composerのインストールは次の処理で進めます。

  • composer.pharをダウンロードする
  • composer.pharを「composer」コマンドで実行可能にする

それぞれを以下で説明します。

composer.pharをダウンロードする

下記URLから、ダウンロードが可能です。
https://getcomposer.org/download/2.1.1/composer.phar

composer.pharは、wgetなどでダウンロードすることができます。
しかし、そのままだとインストーラーを経由しないことになります。

インストーラーは、PHPの設定(php.ini)をチェックしてくれます。
その際に問題があれば、エラーや警告を表示してくれるようです。

それなら、そのインストーラーを利用しようとなりますよね。
インストーラーは次のURLからダウンロードできます。
https://getcomposer.org/installer

これをダウンロードしても構いません。
ただ、公式では次のコマンドを使うことをおススメしています。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

上記コマンドは、単純に次の処理をPHPで実行しているだけです。

  • インストーラーをcomposer-setup.phpとして保存
  • インストーラーが正しいモノかどうかチェック
  • インストーラーを実行
  • composer-setup.phpを削除

上記実行後には、同一ディレクトリ上にcomposer.pharを確認できます。
また、composer.pharは実行権限付きのファイルとして作成されています。

composer.pharを「composer」コマンドで実行可能にする

composer.pharを用意することはできました。
しかし、このままでは、「composer」コマンドは実行できません。

composer.pharにパスを通すという手もあります。
しかし、ここでは公式の手順に従います。

$ sudo mv composer.phar /usr/local/bin/composer

これにより、「composer」コマンドが使えるようになりました。

以上、Composerのインストールについて説明しました。
最後は、Composerの動作確認を行います。

Composerの動作確認

「composer」コマンドを実行します。

$ composer -v
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
/ /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.1.1 2021-06-04 08:46:46
~省略~

上記のように表示されれば、Composerは動作しています。
以上、Composerの動作確認を説明しました。

タイトルとURLをコピーしました