Composerを初めて使った方から、composerコマンドを実行すると下記のエラーが出るとの質問をもらいました。今回は、このエラーが出た時の確認ポイントを説明します。
(LinuxやPHPに対して不慣れな人向けの記事です)
> php composer.phar update
Could not open input file: composer.phar
結論を先に書くと、代わりに下記のコマンドを実行するとうまくいくかもしれません。
php composer.phar update
又は
composer update
又は
./composer update
又は
/usr/local/bin/composer update
それでは、いくつか確認の方法を説明していきます。
composer.pharの保存した場所を確認
ファイルが見つからない場合、作業しているディレクトリが誤っている可能性が高いです。この問題を切り分けるために、まずはcomposer.pharの場所をフルパスでファイルを指定してみてください。
> php /home/username/composer.phar update
上記のコマンドで問題なければ、cdコマンドで現在のディレクトリを移動してからphp composer.pharコマンドを実行します。
> cd /home/username
> pwd
/home/username
> php composer.phar update
ファイルがどこにあるかわからない場合は、下記の2つのコマンドを実行してみると場所が探し出せるかもしれません。
sudo find / -print | grep "composer.phar$"
または
sudo find / -print | grep "composer$"
composer.pharファイル自体が無い場合
composer.pharがない場合は、インストール時に実行したphp composer.phar install
の代わりに下記のコマンドを実行すると上手くいくかもしれません。
composer install
composerコマンドをリネームした場合
こちらは、Composerのインストール手順に従って、下記のコマンドを実行した場合のチェック項目です。
下記のコマンドでは、composer.pharのファイル名をcomposerに書き換えているためphp composer.phar
ではコマンドの実行が行えません。
> curl -sS https://getcomposer.org/installer | php
> mv composer.phar /usr/local/bin/composer
この場合は、試しに下記のコマンドを実行してみてください。
/usr/local/bin/composer update
Permissionに関する権限エラーが出る場合は、chmodコマンドでcomposerに実行権限を与えてください。
chmod 755 /usr/local/bin/composer
/usr/local/bin/composer update
rootユーザではない一般ユーザで作業している場合は、sudoを頭につけて管理者ユーザとして実行する必要があるかもしれません。
sudo chmod 755 /usr/local/bin/composer
これでうまくいく場合は、~/.bashrcあたりに下記の定義を書いておくと、次からはcomposer update
で実行できるようになるので便利です。
alias composer='/usr/local/bin/composer'