web-dev-qa-db-ja.com

どこからcomposerを実行するのですか?

composerを/usr/binフォルダーにインストールしたので、そのフォルダーからphp composer.pharを実行すると、composerに関するヘルプ情報が表示されます。しかし、他のフォルダーから同じものを実行しようとすると、Could not open input file: composer.pharが返されます。

どこからでも問題なくphp composer.pharを呼び出す方法は?

71
ziiweb

composer.pharは単独で実行でき、phpをプレフィックスとして付ける必要はありません。これで問題が解決するはずです(bashの$ PATHとphpのinclude_pathの違いにあります)。

51
Maerlyn

グローバルインストール を実行できます。

Composerは現在の作業ディレクトリで動作するため、システム全体にインストールできます。

  1. cd /usr/local/binのようなパスのディレクトリに変更します
  2. Get Composercurl -sS https://getcomposer.org/installer | php
  3. pharを実行可能にするchmod a+x composer.phar
  4. プロジェクトディレクトリへの変更cd /path/to/my/project
  5. 通常どおりComposerを使用しますcomposer.phar install
  6. オプションで、composer.phartocomposer簡単にするために

Update:時々、/usr/local/binでダウンロードできない場合やダウンロードしたくない場合があります(一部のユーザーのアクセス許可の問題やアクセス制限があります)。この場合、これを試すことができます

  1. オープンターミナル
  2. curl -sS http://getcomposer.org/installer | php -- --filename=composer
  3. chmod a+x composer
  4. Sudo mv composer /usr/local/bin/composer

Update 2:Windows 10およびPHP 7の場合 このチュートリアル をお勧めします。個人的に Visual C++ Redistributable for Visual Studio 2017 x64 before PHP 7.3 VC15 x64 Non Thread Safeバージョン( PHP for Windows の両方のバージョンを確認してください)= =ページ、サイドメニュー)。注意深く読んでください。おそらく、enable-extensionsセクションが異なる可能性があります(extension=curlではなくextension=php_curl.dll)。チャームのような作品、幸運を!

101
quantme

ターミナル経由でComposerをどこからでも(MacOS Xで)実行する方法

背景:

実際、getComposer Webサイトでは、次のcurlコマンドを使用してComposerをインストールすることを明確に述べています。

curl -sS https://getcomposer.org/installer |php

そして、それは確かに意図したことをします。そして、composer.pharをディレクトリ/ usr/local/bin/composerそしてcomposerは、ターミナルで次のコマンドラインを使用してグローバルに利用可能になります!

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

質問:

それで、私をGoogleに導く問題は、Mac OS Xターミナルで上記の行を実行したときに、許可が拒否されたということです。次のように:

mv: rename composer.phar to /usr/local/bin/composer: Permission denied

回答:

link に従うと、私は魅力のような解決策に導かれ、私はそれに感謝しています。私がちょうど見逃したのは、上記の「移動」コマンドラインの前のSudoコマンドでした。現在、私の移動コマンドは次のとおりです。

Sudo mv composer.phar /usr/local/bin/composer
Password:

それはあなた自身を認証し、あなたが許可されているかどうかを確認するように直接促します。有効なパスワードを入力すると、移動が完了します。次の行を使用して、composerがグローバルにインストールされているかどうかを確認できます。

composer about

この回答があなたの視野を広げ、最終的にあなたの問題を解決するのに役立つことを願っています。

乾杯!

22
Randika Vishman

最初にcomposerに記載されているcomposer インストールドキュメント のようにインストールします。参考のためにここに追加しました。

curl -sS https://getcomposer.org/installer | php

そして、ファイルを「/ usr/local/bin」に移動します。

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

composer -Vを実行してみてください。 Composer versionのような出力にバージョン番号が続く場合、composerが正常にインストールされています。

composer: command not foundのような出力が得られた場合、次のコマンドを使用して作曲家のエイリアスを作成することを意味します。したがって、グローバルに実行されます。

alias composer='/usr/local/bin/composer'

これで、composer -Vを実行すると、Composer Versionの後にバージョン番号が続く出力が得られます。

これが誰かを助けることを願っています。

15

このコマンドを実行して、composerをグローバルにインストールします

curl -sS https://getcomposer.org/installer | Sudo php -- --install-dir=/usr/local/bin --filename=composer
6
Tahir Yasin

/usr/local/binフォルダに移動して、拡張子を削除するだけです

Sudo mv composer.phar /usr/local/bin/composer
4
LeoSarli

MACおよびLINUXの場合、次の手順を使用します。

Composer.pharがあるディレクトリをPATHに追加します。

export PATH=$PATH:/yourdirectory

そしてcomposer.pharの名前をcomposerに変更します。

mv composer.phar composer
2
Tadej

他の場所から実行するには、プログラムに付属のcomposerプログラムを使用できます。基本的にはbashスクリプトです。お持ちでない場合は、次のコードをテキストファイルにコピーするだけで作成できます。

#!/bin/sh

dir=$(d=$(dirname "$0"); cd "$d" && pwd)

if command -v 'cygpath' >/dev/null 2>&1; then
  dir=$(cygpath -m $dir);
fi

dir=$(echo $dir | sed 's/ /\ /g')
php "${dir}/composer.phar" $*

次に、binフォルダー内にファイルを保存し、ファイル拡張子なしでcomposerという名前を付けます。次に、binフォルダーを環境変数fに追加します

これのいくつかは、サーバーが実行されているOSに起因する可能性があります。最近、Ubuntuを実行している新しいホスティング環境に移行しました。このエイリアスalias composer="/path/to/your/composer"を.bashrcまたは.bash_aliasesに追加しても、最初は2つの理由で機能しませんでした。

サーバーはデフォルトでbashではなくcshを実行していました。これが問題であるかどうかを確認するには、echo $0を実行します。返されるものが-cshの場合、bashに変更する必要があります。csh/tcshを使用してComposerによって実行される一部のプロセスが失敗するためです。

これを変更するには、まずcat /etc/shellsを実行して、サーバーでbashが使用可能かどうかを確認します。返されたリストにbin/bashが表示されている場合、chsh -s /bin/cshを実行してデフォルトをbashに変更できます。

これで、この時点でComposerを実行できるはずですが、通常、Ubuntuでは、source ~/.bashrcまたはsource ~/.bash_profileを実行してBashスクリプトを読み込み、すべてのセッションでスクリプトをロードする必要があります。これは、ほとんどの場合、Ubuntuが.profileをデフォルトのスクリプトとしてロードするため、Bashスクリプトをロードしないためです。

セッションを開いたときにBashスクリプトをロードするには、これを.profileに追加してみてください(これは、Bashスクリプトが.bashrcの場合です。bash_profileまたはその他の場合は適宜変更します)。

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

テストするには、セッションを閉じてリロードします。正常に動作している場合、composer -vまたはwhich composerを実行すると、期待どおりに動作するはずです。

0
karolus

簡単なグローバルインストールを実行して、どこからでも実行できます。

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

https://getcomposer.org/doc/00-intro.md#globally Webサイトはこの方法を推奨しています。 Ubuntu 14.04で問題なく動作しました。この方法では、例としてphp compomser.phar showを実行する必要はなく、作業中のディレクトリでcomposer showを実行するだけです。

0
user3257693