Entersquare Inc. ホームページ作成の株式会社エンタースクウェア

【Amazon Linux】サーバーにComposerを入れる

【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

バージョンが表示されたら完了です。

お疲れ様でした。

以下サイトさん、参考にさせていただきました。ありがとうございます。

https://tech-record.com/article/composer-on-sakura-server/

〜続き〜 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」へ戻しておこうと思います。

Solutions

ソリューション

ホームページ作成

Webサイト制作・運用保守

コーポレートサイト/サービスサイト/オウンドメディアサイト/LP/EC

ウェブマーケティングの技術を使ってホームページの作成や保守を承っております。

Webのお悩み

Webのご相談・サポート

運用のお困りごと/集客のお困りごと/運用担当が居なくなったなど

Webに関するお困りごとや、お悩みなどのご相談、サポートを承っております。

その他、アクセス解析、広告運用、SNSサポートなどWebに関する事全般承っております。

詳しく見る