HHVM is an open-source virtual machine designed for executing programs
written in Hack and PHP. HHVM uses a just-in-time (JIT) compilation
approach to achieve superior performance while maintaining the
development flexibility that PHP provides.

Hack is a programming language for HHVM. Hack reconciles the fast
development cycle of a dynamically typed language with the discipline
provided by static typing, while adding many features commonly found
in other modern programming languages.

Please note that HHVM is unsupported on 32-bit OSes and there are no
current plans to ever add support.

In order to start HHVM at boot and stop it properly at shutdown,
make sure rc.hhvm is executable and add the following lines to
your rc.d scripts:

   /etc/rc.d/rc.local
   ==================
   # Startup HHVM
   if [ -x /etc/rc.d/rc.hhvm ]; then
      /etc/rc.d/rc.hhvm start
   fi

   /etc/rc.d/rc.local_shutdown
   ===========================
   # Stop HHVM
   if [ -x /etc/rc.d/rc.hhvm ]; then
      /etc/rc.d/rc.hhvm stop
   fi

HHVM ships an integrated web server, proxygen, which listens on port
9000 (though you can configure proxygen to make use of a different
port): https://docs.hhvm.com/hhvm/basic-usage/proxygen.

Alternatively to reverse proxy, FastCGI is available, which uses Unix
sockets by default. If your web server isn't Apache make sure it has
write access to the socket file. You can create a new group and add
your web server user to this group or just use the main group of your
web server and start HHVM as following:

   hhvm_GROUP=apache /etc/rc.d/rc.hhvm start

See https://docs.hhvm.com/hhvm/advanced-usage/fastCGI.

To start a project you have to configure the type checker as well.
See the official documentation:
https://docs.hhvm.com/hack/getting-started/getting-started

Basically you create an empty .hhconfig file in the root dir of your
project:

   touch .hhconfig

and run:

   hh_client

Happy Hacking!
