summaryrefslogtreecommitdiffstats
path: root/development/hhvm/README
blob: 0145748d605c3f5b118ecc42a4234fe95a0e2780 (plain)
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
the following files:

   /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

Default HHVM configuration uses Unix sockets. If you don't use Apache
make sure that your web server 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

FastCGI must be configured to communicate with HHVM.
A good start point is: https://github.com/facebook/hhvm/wiki/FastCGI

To start a project you have to configure the type checker as well.
See the official documentation:
http://docs.hhvm.com/manual/en/install.hack.bootstrapping.php

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

Happy Hacking!