LoginSignup
3
3

More than 5 years have passed since last update.

HHVM環境でComposerをインストールする方法

Posted at

composer.pharは1行目のshebangが

#!/usr/bin/env php

となっているので、コマンドとして叩くとphpで実行されてしまいます。

hhvmで起動するためには

$ hhmv --php composer.phar

とする必要があります。
しかしこれは面倒くさい。

composer.pharは改ざんするとエラーになる

じゃあshebangを書き換えればいいじゃないかと思って

- #!/usr/bin/env php
+ #!/usr/bin/hhvm --php

と書き換えて実行してみると、

$ ./composer.phar

Fatal error: Uncaught exception 'PharException' with message 'phar has a broken signature' in :
Stack trace:
#0 (): Phar->parsePhar()
#1 (): Phar->__construct()
#2 /usr/local/bin/composer.phar(23): Phar::mapPhar()
#3 {main}

むむむ・・「シグネチャが壊れた」というエラーメッセージが。
composer.pharにはコンテンツ改ざん検知の仕組みがあって、中身が改ざんされたらエラーになってしまうようです。
なんとおせっかい、いや、セキュアなことでしょう。

対策:ラップコマンドを作ればおk

とりあえずオリジナルのcomposer.pharをパスの通った場所に設置して、

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

下記のようなラップコマンドをつくって/usr/local/bin/composerとして保存します。

/usr/local/bin/composer
#!/bin/bash
# simply delegate to composer.phar

dir=$(cd $(dirname $0);pwd)
exec hhvm --php $dir/composer.phar "$@"

こうすると、composerと叩くだけで hhvm経由でcomposer.pharを起動することができます。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3