2022.09.14 /

macOS MontereyにComposerをインストールしてみた

ComposerはPHPのパッケージ管理システム。
yarnやnpmと似たようなツールのようで私もまだ詳しくは理解できていないですが、今回ちょっとDrupalというCMS案件で使う必要が出てきたのでインストールしてみることに。
いろいろ参考サイトなどを見てやってみたものの、詰まったポイントなどもあったので覚書として手順をまとめます。

ターミナルでファイルをダウンロードする

まずComposerをダウンロードするフォルダを適当な場所に作り、cdコマンドでそこに移動します。

cd ダウンロードするフォルダのパス

次に公式のダウンロードページに記述してあるインストールコマンドをコピペ。

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

詰まりポイント

私の場合MAMPに付随するPHPを使っていて、まずここで「php command not fond」と怒られました。
のでPHPコマンドを使えるよう ~/.bash_profile にMAMPのPHPへのPATHを追記しました。

export PATH=$PATH:/Applications/MAMP/bin/php/php8.0.8/bin

成功すると指定したフォルダにcomposer.pharというファイルが作成されるので実行権限を付与

chmod +x composer.phar

composer.pharを実行ファイルとしてリネームして /usr/local/bin/ の中へ移動します

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

詰まりポイント

このコマンドでやっていることは /usr/local/bin/ の中にcomposer.pharをcomposerにリネームして移動しています。
/usr/local/bin/composer/にcomposer.phar を移動するのではないので注意。

/usr/local/bin/composerのPATHを通す

~/.bash_profileファイルを開き /usr/local/bin/composer のPATHを追記します。

export PATH=$PATH:/usr/local/bin/composer

ターミナルを再起動または以下コマンドでbash_profileの変更を反映させます。

export PATH=$PATH:/usr/local/bin/composer

詰まりポイント

私はターミナルの環境設定でシェルの種類を /bin/bash に変更しているのでPATH設定ファイルが ~/.bash_profile ですが、Catalina以降のMacはデフォルトのシェルがzshというものになっているので、その場合のPATHの設定ファイルは ~/.zshrc になります。

PATHが通っているか確認してみます。

echo $PATH

出力された内容に /usr/local/bin/composer が含まれていればPATHが通っています。

実行コマンドを打ってみる

composer

とコマンドを打ってみて、以下のような表示がされればインストール成功。

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.4.1 2022-08-20 11:44:50

back to the list