【Amazon Linux】サーバーにComposerを入れる
サーバー(Amazon Linux)にComposerを入れる手順をメモしておきます。
1.SSHでサーバーにログインする
SSHでサーバーにログインをします。
$ ssh -p [ポート] [アカウント]@[ホスト] -i [鍵]
2.Composerを使うディレクトリに移動
場所はそれぞれだと思いますがcdコマンドを使って移動します。
$ cd /var/www/[使いたいディレクトリ]
3.Composerをインストール
curlを使ってComposerをインストールします。エラー等が出なければOK。
$ curl -sS https://getcomposer.org/installer | php
サーバーの作り方なのか、Amazon Linuxだからなのか分かりませんが、
curlでComposerをインストールするときにrootユーザーではないとできませんでした。
なので、パーミッションエラーが出る場合はrootユーザーで試してみてください。
4.動作の確認
以下コマンドを打って、Composerとバージョンが出れば成功しています。
※composrコマンドを使う場合は、一般ユーザーでおこないます。3.Composerをインストールでrootになっている場合は一般ユーザーに切り替えましょう
$ php composer.phar
何かエラーが出た場合
一度以下のようなエラーが出ました。
Class UpdateHelper\ComposerPlugin contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods
vendorディレクトリと、composer.lockを削除して再度「3.Composerをインストール」からやり直して解決しました。
5.パスを通す
bashファイルを編集します。なければ作成してOKかと。
ちなみに、私自身はパブリックな階層より一つ上に.bash_profileありました。
$ vi .bash_profile
viでファイルを開いてiキーを押して編集します。
.bash_profileにexportを入れてあげます。
export $PATH:$HOME/bin:$HOME/usr/local/bin
記載したら、esc → : → qwで保存
※viコマンドについては調べると沢山出てきます。
6.Composer.pharを移動
「composer」と打って使えるように、ファイルを移動します。
$ mv composer.phar /usr/local/bin
//この↑コマンドを打って、ファイルが無いとエラーが出た場合は、/usr/の前に~をつけてみてください
$ mv composer.phar ~/usr/local/bin
最後にファイル名を変更します。
$ mv /usr/local/bin/composer.phar /usr/local/bin/composer
7.確認
最後に、正しく動作しているか確認します。
※composrコマンドを使う場合は、一般ユーザーでおこないます。3.Composerをインストールでrootになっている場合は一般ユーザーに切り替えましょう
$ composer --version
バージョンが表示されたら完了です。
お疲れ様でした。
以下サイトさん、参考にさせていただきました。ありがとうございます。
〜続き〜 Composer updateでエラーが出た
file_put_contents(./composer.lock): failed to open stream: Permission denied
composer.lockのパーミッションエラーが出てしまいました。
今回はcomposer.lockを持っていたので、サーバーにアップしてみました。
無い方は新規作成。
調べてみるとファイルの所有者をユーザーにしたら良いというのを見つけトライ。
sudoが使える場合
$ sudo chown -R [ユーザー] composer.lock
ユーザーとはなんやねんという方、SSHのユーザーのようです。
例えば、yoshidaというユーザー名でcomposer updateをしたい場合[ユーザー]をyoshidaにすると。
Rootの方
//ルートになって
$ su root
//rootのパスワード入れて
//所有者を変更
$ chown -R [ユーザー] composer.lock
//ユーザに戻る
$ su [ユーザー]
所有者を変更して、再度composer updateをトライ。
vendorが作れませんというエラー
vendor does not exist and could not be created.
どうしてなの..
さっきから権限(パーミッション)で引っ掛かるようなので、vendorディレクトリを作って、そのパーミンションを変更することに。
//vendro作る
$ mkdir vendor
パーミッションを「755」「775」を試しましたが、新しくディレクトリを作るのに失敗してしまいます。
ここは思い切って「777」へ。
//パーミッションを変更
$ chmod 0777 vendor
これで、もう一度composer updateをし、無事依存ライブラリたちがダンロードされました。
心配なのでvendorは「775」へ戻しておこうと思います。