1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

検証環境にcomposerの本体をインストールしようと思ったら、躓いたので備忘録

Posted at

はじめに

検証用に建てた環境でcomposerの本体がインストールされていないことが判明→どこでインストールするべきか、どこにcomposer.pharファイルをおくべきかLinux環境でのディレクトリ構造(各ディレクトリの意味)をよく知らなかったためわりと適当にインストールしようとしたら、新人SEが先輩SEからつっこまれたので忘れないようにまとめておきます。

今回の検証環境は
CentOs
Laravel
で作ってます。

参照:composerダウンロードページ

事の発端

プロジェクトの検証環境に差分をアップするように指示を受ける

検証環境にssh接続してappディレクトリやpublicディレクトリをアップする

そういえば、新しいライブラリも入れたからcomposer updateしなきゃ

composer command not found

composer入ってないのか確認

なかった

composerないのかじゃあインストールするか!

ということでcomposerの本体を検証環境にインストールすることになりました。

じゃあどこでインストールするか

phpディレクトリにインストールすればいいんじゃない?と思い、root権限をたちまち教えてもらい(元々のユーザーにはフォルダへの書き込み権限がなかったため)、phpディレクトリを探す旅に...

とここでSTOPがかけられました。

・そもそも変更しても大丈夫なディレクトリの情報をroot権限で変更しようとしているのか
・他のプロジェクトの影響は大丈夫なのか
・composerをインストールする推奨のディレクトリがあるんじゃないのか

私は勘違いしていました。
え、どこのディレクトリでもいいんじゃないの?と
と、とりあえずcomposerのドキュメントを読みことになりました。

コマンドでのcomposerの本体ダウンロード、設定

はじめに

The installer - which requires that you have PHP already installed - will download Composer for you and set up your PATH environment variable so you can simply call composer from any directory.

このインストーラーはComposerをダウンロードし、PATH環境変数を設定して任意のディレクトリーから簡単に呼び出すことができるようにします。(PHPをインストールしている必要があります。)

composer本体のインストール

1. phpコマンドでコピー、DL
php -r "copy('https://getcomposer.org/installer'、'composer-setup.php');"
こちらのコマンドはphpのcopy()関数copy( コピー元、コピー先 )を実行するコマンドになっています。
コピー先の部分はコピーを置きたいディレクトリのパスを書くことで任意の場所にコピーでき、コピー後のファイルの名前を書くことで名前の変更をすることができます。
実際、コピー先のhttps://getcomposer.org/installerにアクセスするとinstallerというファイルがDLでき、今回はこのinstallerというファイルをカレントディレクトリ(パスは書かれていないので)にcomposer-setup.phpという名前で保存するというコマンドになっています。

2.  phpコマンドでハッシュ値を確認して、ファイルが正しいものが調べる
pphp -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
内容は
hash_file('sha384', 'composer-setup.php')composer-setup.phpファイルのハッシュ値をsha384のアルゴリズムを元に計算。その計算されたものが55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eaeであればInstaller verifiedと出力され、異なった場合はInstaller corruptを出力し、composer-setup.phpファイルを削除する...というものになります。
ですので、ブログを見ながら1.のコマンドでDLサイトからインストーラーをDLしてブログのハッシュ値を比べてもバージョン違い等で、Installer corruptを出力されてしまう場合があります。しっかりDLサイトのコマンドで実行しましょう(1敗)

3.  composer本体のインストール
php composer-setup.php
composer-setup.phpを実行します。実行によって、phpの設定ファイルの変更とcomposer.pharファイルをカレントディレクトリに作成します。

4.  必要なくなったcomposer-setup.phpファイルの削除
php -r "unlink('composer-setup.php');"

これでcomposerはインストールされました!ヤッタネ!
カレントディレクトリにはcomposer.pharファイルが出来ているはずですのでこのディレクトリで
php composer.pharとコマンドを打つとcomposerを確認できるかと思います。
たちまち他のプロジェクト等でcomposerを使わないのであれば、これでいいのかなーと思います。
composer updatephp composer.phar updateと書打てばいいので、これで事足りるかなと。
ただし、composerを他のユーザでも使えるようにするのは後々必要かと思います。

他のユーザも使えるようにする

上記の状態は自分が使用しているユーザでしかcomposerを使えない状態(権限があれば別)ですので、みんなが使えるようにします。
やり方は共通のディレクトリなんかにcomposer.pharを移動させて、そこにパスを通せばいいみたいです。
sudo mv composer.phar /usr/local/bin/composer ← /usr/local/binは全ユーザーの共通のディレクトリの意味があるっぽいなければmkdir等で作成すればよいか。

ちなみに今回composerのインストールをしようとした場所はbinディレクトリで、知らなかったんですが、ユーザー向けの基本コマンドが入っていディレクトリらしいです。。他にもよく目にする/var/www/html等はアパッチのドキュメントルートのディレクトリだったりと、ちゃんと役割があるんだなと知りました...。

まとめ

今まで自分のPCでの環境以外触ったことがなかったですが、今回検証環境でcomposerをインストールするだけでも、いろいろな発見がありました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?