4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Hack/HHVMのインストール方法と実行方法

Last updated at Posted at 2018-05-14

最近業務でHack/HHVMについて調べることがあったのでまとめてみます。
特にphperの方や、静的言語を使ったことがない方向けの内容になっております。

今回はまずはインストール方法と実行方法について簡単にまとめます。
今後はhackの型やクラスや静的解析、エディタなどの開発環境もまとめていきたいと思います。
最後にhack/hhvmが適しているケースや今後のphpとhack/hhvmの流れについてもまとめていきたいと思います。

Hack/HHVMとは

HHVM(Hip Hop Virtual Machine)とはFacebook社が開発したPHPまたはhackのコンパイラおよび実行環境です。

もともとは HipHop for PHP(HPHPc) という、phpプログラムをC++にコンパイルして高速化するための技術でした。古参のphperの方は記憶されている方も多いのではないでしょうか。

HHVMはその後継として開発されたもので、JITコンパイラによる高速化、最適化を実現しています。このへんの詳しい経緯はwikipediaなどでも紹介されているのでご覧ください。

一方、Hackはphpをベースにした言語ですが、phpに加えて以下の機能を持ち合わせており、HHVM環境で実行できます。

  • 静的型付け(クラスプロパティなどにも対応)
  • ジェネリクス
  • Nullable型
  • 複数のcollection型
  • Lambda

今回はインストール方法と実行方法について簡単にまとめたいと思います。

インストール方法

LinuxではUbuntuおよびDebian向けのパッケージが提供されています。
他にもHHVMのDockerイメージが提供されていたり、Macの場合ではHomebrewを使ってインストールすることもできます。

今回は Vagrantを使ってUbuntu 14.04 TrustyをVirtualboxで構築してみました。
詳細はインストール方法はこちらをご覧ください。

vagrant init ubuntu/trusty64
vagrant up

ubuntuが起動したらvagrant sshでログインしてsudo suでrootになったあと、hhvmをインストールしていきます。

apt-get update
apt-get install software-properties-common apt-transport-https
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xB4112585D386EB94

add-apt-repository https://dl.hhvm.com/ubuntu
apt-get update
apt-get install hhvm

設定ファイル

ubuntuのパッケージでは/etc/hhvmというディレクトリにphp.iniとserver.iniが生成されています。
ここで各設定を行うことができます。

実行

例えばhoge.phpというファイルを作成して下記のようなプログラムを保存します。

<?hh
echo 'hoge';

そしてコマンドを実行します。

hhvm hoge.php

そうするとhogeと出力されます。
ご覧の通りいつもは<?phpとなっているところが<?hhとなっています。
これでhhvmにこれからhackで書くよ、ということを宣言しています。

なお、実行するプログラムファイルと同階層のところに.hhconfigというファイルを置かないとFatal Errorになります。
本来はこの.hhconfigにいろいろ設定ができるのですが空でも動作します。

またhhvm -m server -p 8080のようにすることでサーバーモードとして起動することもできます。
上記では8080ポートへのアクセスをlistenしてhackアプリケーションを実行します。
また設定によってはfastcgi形式の通信を受け取ることもできるためphp-fpmのようにnginxのバックエンドとして立てておくことが可能です。

次回はhackの特徴についてまとめたいと思います。

4
0
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
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?