memori

Alternative facts

HHVM on Heroku で Hack!

さて、今話題の Hack ですが、気軽に試したいけど HHVM とかインストールするのめんどくせーよ!っていう方、居ますよね。

そんな時、heroku-buildpack-hhvm をつかえば、ほんの数ステップで Heroku で Hack を試してみることが出来ますよ!

簡単に Hello World を作るまでの解説をすると、

1. git リポジトリ作る

git リポジトリを最初に作る必要も無いんですが、後々手間がかからないので僕はまず作っちゃいます。

mkdir hhvm-on-heroku-hack
cd hhvm-on-heroku-hack
vim index.php // <?hh echo "Hello Hack!";
git init
git add index.php
git commit -m "Initial commit"

2. Heroku アプリを作成する

heroku-buildpack-hhvm を buildpack に指定するだけですよ! アプリが作成されると、git remote (heroku) に heroku の git リポジトリ URL が登録されます。

heroku create --buildpack https://github.com/hhvm/heroku-buildpack-hhvm

3. デプロイ

はい、完了。

git push heroku master

僕がこの手順で作ったページは、http://hhvm-on-heroku-hack.herokuapp.com からアクセスできるようにしておきました。あと、デプロイしているのはこんなかんじ のファイルです。

簡単でしょ?

HHVM で動かそうとしていた Symfony2 の簡単なアプリが動くようになった

heroku-buildpack-hhvm が最新版にアップデートされたので、以前に失敗していた例のアプリ に再挑戦してみたら、ようやく動くようになった。

ただ、そのまま deploy し直すだけではうまくいかなかった。

まずは、Doctrine の この PR の問題でコケてしまい、安直に Symfony のバージョンを上げてみたもののやっぱり駄目。この PR が取り込まれたリリースがまだないのと、doctrine-dbal だけを dev-master にしてやろうかとも思ったんだけど、そうするとこんど DoctrineBundle の依存関係が壊れるので駄目。

まあ、そんな頑張るものじゃないしな。と思って composer.jsonpost-install-cmd で PR が取り込まれているバージョンの該当ファイルを curl で上書きするっていう、場当たり的にもホドがあるだろうという強引な解決で乗り切った。

今回試したアプリは、実際に Heroku で動かしているので、興味があればご覧くださいませ。

あとで書く:

  1. 946oss 忘年会に参加してきた話
  2. 勝手に祝う会を開催してもらった話

Symfony2 の簡単なアプリを HHVM で動かそうとした

だがしかし失敗した。

前回の記事からちょっといろいろいじっている HHVM on Heroku 環境がほんとうに使えるか試してみようと思って、まずは HHVM の buildpack の Composer 対応をして (hhvm/heroku-buildpack-hhvm#3 で PR 出したけど、なんかちょっとモメてるw) 、Silex アプリ動かしてみたら動いたので、Symfony もいけるかなと思って簡単なアプリ作っておいてみた。

作ったサンプルは GitHub に置いてありますconfig.hdfSilex アプリ動かした時に試したので、これで大丈夫なはず。

どうやら Doctrine がうまく動かないのと、bootstrap.php.cache の生成あたりがあやしい感じ。 Heroku で生成するのを諦めて、Doctrine も諦めればいいかもしれないけど、ちょっと面倒だな。

HHVM ではいまのところ、Silex + PDO くらいが現実的かもですね。