質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

解決済

composerが使えません

WebDesigner
WebDesigner

総合スコア11

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

3回答

1グッド

1クリップ

22465閲覧

投稿2016/07/27 14:32

編集2016/07/27 15:55

###環境
・Google Could Platform(Compute Engine)VMインスタンス
・CentOS 7
・PHP5.6

###実現したいこと
PHPからメールを送れるようにするためSendGridライブラリを利用できるようにしたい。
が、そのためにはcomposerが必要らしいので使えるようにしたいです。

###現状
https://sendgrid.kke.co.jp/blog/?p=1066
上記のサイトで紹介されている手順でSendGridライブラリを使おうと設定を進めていると
composerの実行部分でエラーが発生してしまいました。

[root@xxx sendgridjp-php-example]# composer install -bash: composer: command not found

composerがインストールされていないのかと思いインストールしたのですが結果は変わりませんでした。

[root@xxx sendgridjp-php-example]# curl -sS https://getcomposer.org/installer | php [root@xxx sendgridjp-php-example]# ./composer.phar # php composer.phar Do not run Composer as root/super user! See https://getcomposer.org/root for details ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.2.0 2016-07-19 01:28:52 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [root@guido-webserver sendgridjp-php-example]# composer --version -bash: composer: command not found

なぜインストールしてもcomposerコマンドが使えないのかよくわかりません。
もし分かる方が居られたらご教授お願い致します。

###試したこと
現状に悪影響を与えているのかわからないのですが
SendGridがちゃんと使えるのか確認のため以下の手順でメールが送れるか試しました。(メールは送れました)
http://www.apps-gcp.com/sendgrid-gce/

composerをインストール時に1行目に警告がでたのでroot権限外でインストールしてみたのですが結果は変わりませんでした。

追記

ご回答ありがとうございます。
それぞれやってみたのですが、自分の力及ばずうまくいきませんでした・・・。すみません。

実行結果は以下のようになりました。

CentOS

1[xxx@xxx ~]$ curl -sS https://getcomposer.org/installer | php 2All settings correct for using Composer 3Downloading 1.2.0... 4Composer successfully installed to: /home/xxx/composer.phar 5Use it: php composer.phar 6[xxx@xxx ~]$ echo $PATH 7/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/xxx/.local/bin:/home/xxx/bin 8[xxx@xxx ~]$ sudo mv composer.phar /usr/local/bin/ 9[xxx@xxx ~]$ composer -v 10-bash: composer: command not found 11[xxx@xxx ~]$ php composer.phar -v 12Could not open input file: composer.phar 13[xxx@xxx ~]$ cd /usr/local/bin/ 14[xxx@xxx bin]$ php composer.phar -v 15 ______ 16 / ____/___ ____ ___ ____ ____ ________ _____ 17 / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ 18/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / 19\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ 20 /_/ 21Composer version 1.2.0 2016-07-19 01:28:52 22 23~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ちなみにcomposer.pharがあるディレクトリなら実行できるようだったので
composer.jsonがあるディレクトリに直接composer.pharを設置して
php composer.phar install
を実行してみると真っ赤な文字と共に以下のエラーが帰ってきてしまいました・・・。

CentOS

1[xxx@xxx sendgridjp-php-example]$ php composer.phar install 2Loading composer repositories with package information 3Updating dependencies (including require-dev) 4 5 [RuntimeException] 6 /var/www/html/private/sendgridjp-php-example/vendor does not exist and could not be created. 7 8install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--no-suggest] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--ignore-platform-reqs] [--] [<packages>]...

この結果から何か私の間違いなどわかるでしょうか?
重ね重ねの質問申し訳ございませんがよろしくお願いします。

DrqYuto👍を押しています

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答3

2

グローバルにインストール

$ curl -sS https://getcomposer.org/installer | php $ mv composer.phar /usr/local/bin/composer

これで、Composerを実行をphp composer.pharの代わりにcomposerだけで実行できます。
逆に、mv させないのであれば、php composer.pharで使用することが出来ます。

投稿2016/07/27 15:06

退会済みユーザー

退会済みユーザー

総合スコア0

coba-coba, DrqYuto👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

WebDesigner

2016/07/27 15:58

ご回答ありがとうございます。 試してみたのですがcomposer、php composer.pharともに実行できませんでした。 質問文を追記したのでもしよろしければご覧いただけると助かります。
退会済みユーザー

退会済みユーザー

2016/07/27 16:01

mv 先が間違っています。 mv composer.phar /usr/local/bin/composer リネームします。
WebDesigner

2016/07/27 16:15

$ sudo mv composer.phar /usr/local/bin/composer で実行してみたのですがはやり $ composer -v -bash: composer: command not found となってしまいました。
退会済みユーザー

退会済みユーザー

2016/07/27 17:57 編集

多分どこかで手順を間違っています。 パスも通っているので、composer ファイルがあり、実行権限があれば -bash: composer: command not found にはなりません。 installer | php では、インストール作業(鍵ファイルの書き込み等)と共に、実行権限が付与されたファイル(composer.phar)が作成されるので、mv に失敗しているか、どこかで権限を変えてしまっているのだと思います。後は root でコマンド打ってるとか。

2

ベストアンサー

composer.pharを/usr/local/bin/などのパスの通ったところに移動すると、composerと打ち込むだけで実行できます。
Google Cloud Platformではどこまで権限があるか分かりませんが。

追記:
単純な方法はパスの通った所にファイル名を変更して移動する方法です。
te2jiさんの回答の通りです。

mv composer.phar /usr/local/bin/composer

それでもいいですが、composer.pharをアップデートする時などに毎回/usr/local/bin/にリネームして移動しなければなりません。
そこで、asahina_devさんのおっしゃる通り、エイリアスを設定する方法があります。

PHP

1alias composer="php /composerをダウンロードするパス/composer.phar"

これは、
php /composerをダウンロードするパス/composer.phar
で実行するところを
composer
で実行できるようにエイリアスを設定しています。

これでどこでもcomposerというコマンドを使うことができます。

composer.pharをアップデートする際には、/composerをダウンロードするパス/composer.pharを更新していくことになります。

投稿2016/07/27 14:48

編集2016/07/27 16:14
coba-coba

総合スコア1409

FKM👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

WebDesigner

2016/07/27 15:59

ご回答ありがとうございます。 $ echo $PATH でパスを確認してcomposer.pharを移動させてみたのですが、はやりcomposerコマンドが使えませんでした。 もしよろしければ質問文に状況を追記しましたのでご覧いただけると光栄です。
coba-coba

2016/07/27 16:03

すみません、言葉足らずでした。 上記に付け足します。
WebDesigner

2016/07/27 16:25

ありがとうございます! エイリアスを設定することでいけました! すごくわかりやすい解説をして頂けて大変助かりました!ありがとうございます!
coba-coba

2016/07/27 16:29

更に回答し忘れていましたが、ファイルをリネームして移動する方法は、多分パーミッションや所有者の問題があります。 rootで作業すれば問題ないのですが。 解決ということですが念のため……。

2

composer がインストールされてない端末の場合は

bash

1php composer.pher install 2php composer.pher update

で実行します。

PHPからメールを送れるようにするためSendGridライブラリを利用できるようにしたい。
が、そのためにはcomposerが必要らしいので使えるようにしたいです。

いいえ、関係ありません。

phpリポジトリ(packagist) からライブラリをダウンロードするのに必要なだけです。

PATHが通っているディレクトリにリネームして配備する方法もありますが。
これはあまりお勧めできません。私はするなら以下を進めますが

alas composer="php /path/to/composer.pher"

前述の `php composer.pher {command}' を使います

投稿2016/07/27 14:38

編集2016/07/27 14:57
asahina_dev

総合スコア610

coba-coba, DrqYuto👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

asahina_dev

2016/07/27 14:40

composer.pher をダウンロードしただけではインストールしたことにはなりません。あしからず
asahina_dev

2016/07/27 15:03

うちてきには`ダウンロード`
退会済みユーザー

退会済みユーザー

2016/07/27 15:16

編集後の内容であれば、質問された方と認識合いそうですね。 この内容であれば、私の回答いらなかったな^^;
WebDesigner

2016/07/27 16:09

大変恐縮なのですが、もしよろしければcomposerを使わずSendGridライブラリを利用できるようにする方法があれば教えていただけると・・・うれしいです。。
WebDesigner

2016/07/27 16:24

エイリアスを設定することでいけました!ありがとうございます!

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。