Linux

LinuxにComposerをインストールする手順


Image Credit:getcomposer.org

はじめに

PHPのパッケージ管理システムであるComposerをUbuntu、Cloud Linuxの両方に入れる機会があったのでその手順をメモします。UbuntuとCloud Linuxで手順は同じです。また、グローバル、ローカルそれぞれにインストール手順もまとめます。

前提と環境

以下の通りです。

  • PHPはインストール済とする。バージョン情報は後述
  • 確認したOS : Ubuntu18.04、Cloud Linux

PHPのバージョン情報は以下です。

$ php -v
PHP 7.3.3 (cli) (built: Mar  7 2019 10:02:44) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.3, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.3, Copyright (c) 1999-2018, by Zend Technologies

以降の手順は、以下のComposerの公式ドキュメントにしたがって行います。

Download Composer Latest: v1.8.5

To quickly install Composer in the current directory, run the following script in your terminal. To automate the installation, use the guide on installing Composer programmatically.

Composerをグローバルにインストールする

はじめにグローバルにインストールする手順を説明します。特定のプロジェクトのディレクトリにローカルにインストールする手順は次節で説明します。
インストールは全てコマンドで実行します。公式サイトの手順に従って、以下のコマンドを順番に実行します。

# インストーラをダウンロードする
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

# ダウンロードしたインストーラのハッシュをチェックし、正しければ'Installer verified'と表示する
$ php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

# インストーラを実行する
$ php composer-setup.php

# インストーラを削除する
$ php -r "unlink('composer-setup.php');"

上記は公式ドキュメントのままです。上記を全て実行すると、Ubuntu18.04の場合は/usr/local/bin/composerというファイルが作成されます。
動作確認として以下のコマンドを実行してComposerの文字と使用方法が表示されれば完了です。

$ composer -v
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.3.1 2017-01-07 18:08:51

Usage:
  command [options] [arguments]

Options:
  -h, --help                     Display this help messag
(...以下省略...)

「コマンドが見つかりません」と表示される場合

上記のコマンドを順番に実行してcomposer -vを実行した時に以下のようにコマンドが見つからないというメッセージが表示されることがあるかもしれません。

$ composer -v
-bash: composer: コマンドが見つかりません

上記は日本語ですが、英語だとCommand not foundとなります。
この場合は、/usr/local/bin/composerが作成されているか確認してください。もし見つからない場合は、前述した4つのコマンドを実行した時のディレクトリに、composer.pharというファイルが作成されているはずですので、これを以下のコマンドで/usr/local/bin/composerという名前で移動します。

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

もしレンタルサーバなどで/usr/local/bin/へのアクセス権がない場合は、後述する特定のディレクトリにローカルにCompsoerをインストールしてみてください。

Composerを特定のディレクトリにローカルにインストールする

レンタルサーバなど共有スペースの場合は/usr/local/bin/へのアクセス権がない場合も多いと思います。その場合は、Composerを特定のディレクトリにローカルにインストールします。
インストール手順はグローバルにインストールする手順とほとんど同じです。まずはじめに、Composerのインストール先となる適当なディレクトリを、Composerをインストールしたいプロジェクトのディレクトリに作成します。例えば、ここでは以下のようにbinという名前のディレクトリを作成します。

/home/username/yourproject/$ mkdir bin

あとは、以下のコマンドを順番に実行します。

/home/username/yourproject/# インストーラをダウンロードする
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

# ダウンロードしたインストーラのハッシュをチェックし、正しければ'Installer verified'と表示する
$ php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

# インストーラを実行する(ここのみグローバルにインストールする場合と異なる)
$ php composer-setup.php --install-dir=bin --filename=composer

# インストーラを削除する
$ php -r "unlink('composer-setup.php');"

上記を見て分かるとおり、インストーラの実行コマンドのみグローバルの場合と比べて異なります。
--install-dirに渡しているbinというのは事前に作成したComposerのインストール先となるディレクトリです。もし違うディレクトリ名にした場合はこちらを置き換えてください。
また、--filenameに渡しているcomposerは、Composerのバイナリファイルにつけるファイル名です。これがコマンド名になります。

インストールが完了したら、動作確認として以下のコマンドを実行します。以下のbinは各自が作成したComposerのディレクトリ名に合わせてください。

/home/username/yourproject/$ bin/composer -v
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.8.5 2019-04-09 17:46:47

Usage:
  command [options] [arguments]

Options:
  -h, --help                     Display this help message
(...以下省略...)

以上で完了です。

まとめ

Composerを使用したことがなかったためメモしておきます。

SPONSORED LINK

コメントを残す

メールアドレスが公開されることはありません。