こんばんは、ウチイダです。
ご依頼いただいている案件で、XserverにLaravelアプリケーションをデプロイするときにちょっとつまづいたのでメモしておきます。
Xserverにはもともとcomposer がインストールされているのですが、バージョンが古くてうまくいかないことが発生します。
サーバを立てたタイミングによるかもしれませんが、2022年5月時点で、以下のバージョンが動きます。
$ composer -V
Composer version 1.9.1 2019-11-01 17:20:17
v1系ですね…
最新はv2.3 なので、これだといろいろエラーが出てしまいます。
というわけでアップデートをかけたいのですが、self-updateができないように設定されていました。
$ composer self-update
[Symfony\Component\Console\Exception\CommandNotFoundException]
Command "self-update" is not defined.
レンタルサーバだし仕方ない。
というわけで、最新版をインストールします。
多くのサイトでComposerのインストールコマンドが紹介されているのですが、バージョンが古いものだと、ハッシュチェックでエラーになってしまうので、必ず公式サイトのコマンドを参照するようにしましょう…
https://getcomposer.org/download/
このページにインストールコマンドを掲載すると、時間がたったときにここを見ていただいた方をエラーに導いてしまうことになるので、あえて書かないことにします。
上記の公式サイトに掲載されている最新のコマンドでcomposer-setup.php を取得して、ハッシュも最新のファイルのものを利用してください。
あとはインストールするだけです。
/usr/bin には先住Composerがいるので、ここには配置できまん。
パスが通っている別のディレクトリに置くか、新たにパスを通したディレクトリに配置します。
今回はホームディレクトリ配下に.composer を作って、そこに住まわせることにしました。
同じルールでnodebrewとかもインストールされていたので、それに合わせる形です。
composer-setup.php には、インストール先を指定するオプションがついているので、これを利用しました。
$ php composer-setup.php --install-dir=~/.composer --filename=composer;
パスは通してくれなかったので、手動で追加しました。
$ echo "export PATH=$HOME/.composer:$PATH" >> ~/.bashrc
バージョンチェックをして、最新版になっていれば完了です!
$ composer -V
Composer version 2.3.5 2022-04-13 16:43:00
Xserverはレンタルサーバーのくせにいろいろカスタマイズできて便利ですが、ひと工夫必要な場面もあるので、落ち着いてデプロイ作業を行いたいですね。
以上です。あなたのお役に立てれば幸いです。