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

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

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

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

composer

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

Q&A

解決済

3回答

25164閲覧

composerが使えません

WebDesigner

総合スコア11

CentOS

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

composer

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

1グッド

1クリップ

投稿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👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

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

$ 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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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 でコマンド打ってるとか。
guest

0

ベストアンサー

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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で作業すれば問題ないのですが。 解決ということですが念のため……。
guest

0

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問