読者です 読者をやめる 読者になる 読者になる

uzullaがブログ

uzullaがブログです。

OSXにHHVMを入れるが、なんか変

php hhvm

オチを先にいいますが、手元では単体のhttp serverとしてちゃんとうごきませんでした。
CLIとしてうごかす(ReactPHPとか)なら、ちゃんとうごきましたが…。

HHVMをMacにいれたい

HHVMで開発するならLinuxでやればいいんですけど、個人的には手元のMacにいれたい。
といっても、今は非常に便利な世の中であり、brewがあれば大体のものは一発で入ります、便利だ。手元ではMavericksでやっています。


https://github.com/facebook/hhvm/wiki/Building-and-installing-HHVM-on-OSX-10.8
ココに書いてある通りで大体入ります。

非常に非常に非常に(30分〜1時間くらい)時間がかかるのですが、どうもコケやすいので、何回かやりましょう。

「それは、同じことを何度も何度も繰り返し行い、 違う結果を予測することである。 」 by A.アインシュタイン

アインシュタインも冪等性の重要性を説いておりますが、先日某クラウドで、Chefを二回うごかしたらセットアップが完了するような事態を目撃しましたし、まあコンピューターの世界はやり直すと通る事が多いですね…(どうなの…)。

でも、上の通りにやってもHHVMのビルドが通らない。

ただ、上のURLの通りにやっても2014年3月1日現在とおりませんでしたね。*1

$ brew install hhvm --HEAD
==> Cloning https://github.com/facebook/hhvm.git
Updating /Library/Caches/Homebrew/hhvm--git
==> cmake . -DCMAKE_CXX_COMPILER=/usr/local/opt/gcc48/bin/g++-4.8 -DCMAKE_C_COMPILER=/usr/local/opt/gcc48/bin/gcc-4.8 -DCMAKE_ASM_COMPILER=/usr/local/opt/gcc48/bin/gcc-4.8 -DBINU
==> make -j4
/private/tmp/hhvm-kXLD/hphp/runtime/base/ini-setting.h:166: confused by earlier errors, bailing out
make[2]: *** [hphp/runtime/CMakeFiles/hphp_runtime_static.dir/ext/pcre/ext_pcre.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [hphp/runtime/CMakeFiles/hphp_runtime_static.dir/all] Error 2
make: *** [all] Error 2

READ THIS: https://github.com/Homebrew/homebrew/wiki/troubleshooting
If reporting this issue please do so at (not Homebrew/homebrew):
  https://github.com/mcuadros/homebrew-hhvm/issues

という感じでコケました、一回ビルドするのに50分くらいかかるのでつらい。

まあHEADのコードがこわれてるっぽいので、以下のようにしてHEADやめたらビルド通りました。

$ brew install hhvm

HEADでなくとも、二週間くらい前にリリースされた2.4.1がおちてきたので十分です、それなりに追従してるっぽいです
(ビルドの前にはbrew updateしましょう)。

ただ…つかってみると…

今ReactPHPをつかったコードをかいているのですが、これはちゃんとうごいた、普通のPHPよりも速い(これはまた別のエントリで)


しかし…HTTPサーバーモードがうごかない。もともとOSXではfastcgiはうごかないのだが、スタンドアロンhttpdとして動かない。

PHPのBuiltin server風に、以下のようにすればうごくはずなのだが…。

$ hhvm -m server -p 8080

起動はするし、ポートをListenはしているようなのだが、ためちゃくちゃなrequestをとばしてbad requestが帰ってくるケース以外は固まってしまう…。

同じコードをLinuxにもっていって、そちらのhhvmではうまくいくのでOSXのhhvmの問題なのだとおもうが…ログにもそれらしいものは出ない…。

ううーーん…???…徒労…(バタリ)

なんでや…。

どうしてもしなければいけない宣伝

もうすぐ私が一部担当した書籍が出ます!!!
Webアプリエンジニア養成読本
和田 裕介, 石田 絢一 (uzulla), すがわら まさのり, 斎藤 祐一郎

Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)

Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)

良い本になったと思います!詳しくは先日のエントリをご覧ください。
http://uzulla.hateblo.jp/entry/2014/02/23/221757


また、発売を記念して、池袋のジュンク堂書店にてイベントを行います。
予約にはまだ結構空きがあるらしく、「電話予約というハードルがたかすぎるのでは?」という話もありますが、こちらも是非宜しくお願い致します。

http://www.junkudo.co.jp/mj/store/event_detail.php?fair_id=4314

「『Webアプリエンジニア養成読本』(技術評論社)刊行記念
Webアプリエンジニアが出来るまで」
ジュンク堂書店 池袋本店
開催日時:2014年03月20日(木)19:30 ~

*1:依存ライブラリでもコケましたけど、前述の通り二回やったら通りました