summaryrefslogtreecommitdiffstats
path: root/development/hhvm/README
blob: 99d324c7e4de190fa2701994314b5682c9797f1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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:
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!