Skip to content

Building and installing HHVM on Debian 8

Paul Tarjan edited this page Mar 20, 2014 · 23 revisions

Packages installation

sudo apt-get install git-core cmake libmysqlclient-dev \
  libxml2-dev libmcrypt-dev libicu-dev openssl build-essential binutils-dev \
  libcap-dev zlib1g-dev libtbb-dev libonig-dev libpcre3-dev \
  autoconf libtool libcurl4-openssl-dev wget memcached \
  libreadline-dev libncurses5-dev libmemcached-dev libbz2-dev \
  libc-client2007e-dev php5-mcrypt php5-imagick libgoogle-perftools-dev \
  libcloog-ppl-dev libelf-dev libdwarf-dev libunwind8-dev subversion \
  libtbb2 libtbb-dev g++-4.8 gcc-4.8 libjemalloc-dev \
  libc6-dev libmpfr4 libgcc1 binutils \
  libc6 libc-dev-bin libc-bin libgomp1 \
  libstdc++-4.8-dev libstdc++6 cmake \
  libarchive13 cmake-data libacl1 libattr1 \
  g++ cpp gcc make libboost-thread1.54.0 \
  libboost-thread-dev libgd2-xpm-dev \
  pkg-config libdwarf-dev binutils-dev libboost-system1.54-dev \
  libboost-program-options1.54-dev libboost-filesystem1.54-dev libboost-regex1.54-dev \
  libmagickwand-dev libiberty-dev libevent-dev

Getting HipHop source-code

mkdir dev
cd dev
git clone git://github.com/facebook/hhvm.git
export CMAKE_PREFIX_PATH=`pwd`

Building third-party libraries

libevent (Optional if you want builtin web-server support)

git clone git://github.com/libevent/libevent.git
cd libevent
git checkout release-1.4.14b-stable
cat ../hhvm/hphp/third_party/libevent-1.4.14.fb-changes.diff | patch -p1
./autogen.sh
./configure --prefix=$CMAKE_PREFIX_PATH
make
make install
cd ..

Google glog

svn checkout http://google-glog.googlecode.com/svn/trunk/ google-glog
cd google-glog
./configure --prefix=$CMAKE_PREFIX_PATH
make
make install
cd ..

Building HipHop

cd hhvm
export HPHP_HOME=`pwd`
cmake .
make

Running programs

The hhvm binary can be found in hphp/hhvm/hhvm.

Errors

If any errors occur, it may be required to remove the CMakeCache.txt directory in the checkout.

If your failure was on the make command, try to correct the error and run make again, it should restart from the point it stops. If don't, try to remove as explained above.

Clone this wiki locally