sábado, enero 04, 2014

Instalación de HHVM, hhvm-fastcgi, nginx y apache en Ubuntu 13.10

A continuación describo los procedimientos para instalar hhvm y hhvm-fastcgi en Ubuntu 13.10 por código fuente, ya que los paquetes deb adolecen de las ultimas modificaciones en las extensiones de hhvm.
Adicionalmente configuraremos apache y nginx con la extensión hhvm-fastcgi

Actualización de Ubuntu 13.10
Siempre que instalamos paquetes de desarrollo no está demás hacer un update de todos los paquetes

$> sudo su -
$> apt-get -y update
$> apt-get -y dist-upgrade

Si se actualizó  el kernel, no olviden hacer un reboot

Instalación de Prerrequisitos
$> sudo su -
$> apt-get install autoconf automake binutils-dev build-essential cmake g++ git \
  libboost-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev \
  libboost-system-dev libboost-thread-dev libbz2-dev libc-client-dev \
  libc-client2007e-dev libcap-dev libcurl4-openssl-dev libdwarf-dev libelf-dev \
  libexpat-dev libgd2-xpm-dev libgoogle-glog-dev libgoogle-perftools-dev libicu-dev \
  libjemalloc-dev libmcrypt-dev libmemcached-dev libmysqlclient-dev libncurses-dev \
  libonig-dev libpcre3-dev libreadline-dev libtbb-dev libtool libxml2-dev zlib1g-dev

Descargar el código fuente de hhvm, lo instalaremos en /opt
$> cd /opt
$> mkdir dev
$> cd dev
$> export CMAKE_PREFIX_PATH=`pwd`
$> git clone git://github.com/facebook/hhvm.git
$> cd hhvm
$> git submodule init
$> cd ../

Instalar librerías dependientes
libevent
$> 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 ..

Compilar hhvm
$> cd hhvm
$> git submodule update
$> export HPHP_HOME=`pwd`
$> cmake .
$> make

El binario hhvm se instalará en /opt/dev/hhvm/hphp/hhvm/hhvm

Instalación de nginx, mysql, apache y php (para probar los benchmark)
$> apt-get install nginx mysql-server apache2 \
apache2-data apache2-bin apache2-doc php5


HHVM Fastcgi, instalamos los precompilados para Ubuntu 13.10
$> echo deb http://dl.hhvm.com/ubuntu saucy main | tee /etc/apt/sources.list.d/hhvm.list
$> apt-get update
$> apt-get install hhvm-fastcgi

Enlazar el binario hhvm compilado a una ruta del path (reemplazar al hhvm del .deb)
$> mv /usr/bin/hhvm /usr/bin/hhvm-old
$> ln -s /opt/dev/hhvm/hphp/hhvm/hhvm /usr/bin/hhvm

Reiniciar los servicios
$> /etc/init.d/hhvm-fastcgi restart
$> /etc/init.d/apache2 restart
$> /etc/init.d/nginx restart

Editamos el index.php y lo visualizamos en el Navegador
$> vim /var/www/index.php
<?php

echo "Running on HHVM version ".HHVM_VERSION."\n";
phpinfo();
Visualizamos en Apache desde el navegador
http://localhost

Visualizamos en nginx desde el navegador
http://localhost:8090

Debemos visualizar un mensaje similar a
Running on HHVM version 2.4.0-dev HipHop 

Ejecución por consola
$> hhvm /var/www/index.php

3 comentarios:

venesoluciones dijo...

muy buen tutorial amigo muy bien explicado, podrias crear uno asi de bueno pero con ubuntu 14.04?

Anónimo dijo...

no me funciono este paso $> git checkout release-1.4.14b-stable
creo q es por la version del libevent

Richard Site dijo...

Gran aporte.
--
www.richardsite.com.mx