コアサーバーにコンポーザー(Composer)を入れてみたが一筋縄では行かなかった話

composerとはPHPのパッケージ管理システムのことです。

 このパッケージ管理システムがない場合は、必要なライブラリの公式サイトにアクセスし、zipファイルをダウンロードし、ローカルに展開してからサーバーにアップロードする操作を行わなければなりません。それも、DB接続用に○○、ログ出力用に△△等々と、さまざまなライブラリが必要になり、手間がとてもかかっていました。

 パッケージ管理システムはそれらを一括で導入することができるようになります。いまどきのPHPプロジェクトでは必須となっているものです。

 今流行りのlaravelをインストールするためにも必須のものです。

 とは言っても、導入の手間は必要です。振り返ってみるととっても簡単のはずだったのですが、とっても手間がかかってしまったので自分のメモとして導入の記録を残しておきたいと思います。特にCORESERVERだから手間がかかったというわけではありませんが、CORESERVERだとphpの指定の部分で若干面倒だったのは事実です。まあ、他のサーバーなら他のサーバーなりの事情は出てくるのでCORESERVERだから面倒ということはないでしょう。

 SSH接続でサーバーと通信

SSH接続してコマンドラインでダウンロード、インストールを行います。この項はSSH接続は説明しませんので分からない方は他にあたってください。ちょこっとだけ、ソフトについて触れますと、

SSH接続はTera Termが有名ですが、私はRloginを使っています。これは、ワンクリックでログインできコピペも可能ですのでとっても使いやすいです。

  基本的には次のHPを参考にさせていただきましたが、若干の補足説明と、はまってしまった点を説明したいと思います。
https://www.amelt.net/imc/programming/cakephp/5733/

Composerのインストール

  インストールの基本は、以下のComposerの公式サイトのように行います。でも、コアサーバーの場合はこのままでは動きません。
https://getcomposer.org/download/

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');"

 

先ず1行目は次のとおり、phpのバージョンへの絶対パスを指定します。7.1ならphp71cli、7.4ならphp74cliという具合にしなくてはなりません。ところで、Composerはどのバージョンのphpでも動作するのでしょうか。答えは「否」です。

私は、自分のサイトのphpが7.1だったのでphp71cliとしてインストールしましたが、Composer自体はインストールできたのですが、実際に動作させると「 SODIUM_LIBRARY_VERSION の定義がない」というようなエラーが出てしまいました。調べてみると、この定義はphpの7.2から実装されたようで7.1では使えないことが分かりました。ですから、ここは素直にphp74cliでインストールします。このようにインストールする段階でComposerの最新版がどのバージョンのphpで動作するかは前もって調べておいた方が良いでしょう。

/usr/local/bin/php74cli -r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);”

次の行は、本日現在のバージョンの確認です。ハッシュ値によりファイルを特定していますので、バージョンが異なればInstaller corruptとなってしまいます。ですから、実際にインストールするときのハッシュ値を本家を参考に書き換えなくてはなりません。このままのコピペでは動作しない可能性が高いです。

/usr/local/bin/php74cli -r “if (hash_file(‘sha384’, ‘composer-setup.php’) === ‘756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3’) { echo ‘Installer verified’; } else { echo ‘Installer corrupt’; unlink(‘composer-setup.php’); } echo PHP_EOL;”

次の行で実際のインストール、さらにはインストールファイルの削除を行っています。

/usr/local/bin/php741cli composer-setup.php /usr/local/bin/php74cli -r “unlink(‘composer-setup.php’);”

パスを通す

さて、これでComposerおインストールが終わりましたが、このComposerをどこからでも使えるようにパスを通しておかなくてはなりません。 vi .bashrcで起動させ記述して行きます。挿入は「i」、戻りは「Esc」、終了は「:wq」又は「:q」(更新しない)です。

$ vi .bashrc

 

#追記

 

alias composer=’php74cli ~/composer.phar’

 

$ source ./.bashrc

これで、どこからでもComposerと打つとアイキャッチの画像となります。