
En 2017 HHVM era el atajo de rendimiento: JIT de Facebook, WordPress y Laravel más rápidos que el PHP 5.6/7.0 de Ubuntu. Nueve años después Zend Engine ganó la partida — PHP 7, luego 8, OPcache de verdad, JIT en 8.0, y en 2026 PHP 8.5.10 (27 de agosto) ya viene con OPcache integrado. Quien todavía escribe apt install hhvm pensando en PHP instala una VM de otro lenguaje.
De HipHop a Hack: lo que fue HHVM
Facebook se cansó de interpretar PHP en 2010. Primero llegó HPHPc: un transpilador de PHP a C++. Compilar todo el sitio en cada despliegue era lento, eval() no existía, y se alcanzó el techo de rendimiento. En 2011 Jason Evans anunció el sucesor: HipHop Virtual Machine. El código se convierte al bytecode HHBC; el JIT lo traduce a x86-64 en tiempo de ejecución. En el primer trimestre de 2013 facebook.com abandonó HPHPc.
Junto con HHVM 3.0 (marzo de 2014) salió el Hack: PHP con tipos graduales, sin goto y sin variable variable. La VM pasó a servir a dos lenguajes. En septiembre de 2018 Fred Emmott avisó lo obvio: PHP 7 había divergido demasiado. 3.30 sería la última con PHP. En 11 de febrero de 2019 4.0 quitó el <?php del mapa. Quien quería WordPress rápido se quedó con PHP-FPM; HHVM quedó para Hack de Meta (y, durante un tiempo, de Slack).
Lo que cambió desde 2017
- Ubuntu 14.04 y 16.04 llegaron a su fin. LTS actuales: 24.04 (PHP 8.3 en los repositorios) y 26.04 Resolute (PHP 8.5 por defecto).
- PHP 8.5 salió el 20 de noviembre de 2025; el parche del 27 de agosto de 2026 es el 8.5.10. OPcache dejó de ser una extensión opcional: va en el core. JIT con búfer por defecto de 64 MB.
- El repositorio
dl.hhvm.comy la clave GPG0x5a16e7281be7a449de esta entrada ya no sirven para PHP. La clave posterior (0xB4112585D386EB94) tampoco devuelve un HHVM que ejecute Laravel. - El 27 de octubre de 2023, Paul Bissonette anunció: sin lanzamiento oficial, sin GCC, el código sigue en GitHub para quien lo compile. No hay un paquete
aptfiable para PHP en producción.
2026: PHP 8.5 y PHP-FPM en Ubuntu
Si el objetivo de la entrada de 2017 era “PHP más rápido en Ubuntu”, hoy es esto. En 26.04, PHP 8.5 ya está en el repositorio oficial:
sudo apt update
sudo apt install php-cli php-fpm php-mysql php-xml php-mbstring php-curl php-zip php-gd php-intl php-bcmath
php -v
# PHP 8.5.x (cli) … with Zend OPcache v8.5.x
systemctl status php8.5-fpm --no-pager
En el 24.04 LTS el repositorio trae 8.3. Para 8.5, el PPA de Ondřej Surý (el de siempre):
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.5-cli php8.5-fpm php8.5-{mysql,xml,mbstring,curl,zip,gd,intl,bcmath}
sudo update-alternatives --set php /usr/bin/php8.5
php -v
No existe el paquete php8.5-opcache: OPcache va en el runtime. Socket del FPM: /run/php/php8.5-fpm.sock.
OPcache y JIT, lo que prometía HHVM
La ganancia que HHVM vendía en 2016 (Kinsta, WordPress, Drupal) PHP 8 la ofrece con OPcache activado y, bajo carga de CPU, con JIT. En FPM:
sudo tee /etc/php/8.5/fpm/conf.d/99-opcache.ini <<'EOF'
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
opcache.jit=tracing
opcache.jit_buffer_size=64M
EOF
sudo systemctl restart php8.5-fpm
php -i | grep -E 'opcache.enable|opcache.jit'
validate_timestamps=0 en producción: tras el despliegue, reinicia FPM. JIT ayuda poco en WordPress puro (E/S de base de datos); ayuda en tramos CPU-bound. No actives Xdebug delante del JIT.
Nginx delante de FPM
HHVM hablaba FastCGI. PHP-FPM también. En Nginx, el fastcgi_pass apunta al socket de la versión:
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.5-fpm.sock;
}
sudo apt install nginx
sudo nginx -t && sudo systemctl reload nginx
Quien aloja varios sitios en el mismo Ubuntu todavía puede apilar un panel encima: el recorte antiguo de este blog está en ISPConfig en Debian y en la historia de ISPConfig.
¿Todavía quieres Hack?
Ahí HHVM tiene sentido. No para PHP. El runtime vive en facebook/hhvm (los commits siguen en 2026); el lenguaje en hacklang.org. Un paquete listo para la Ubuntu actual no es la vía de producción: Meta ya no publica releases. Compilar desde git, una imagen Docker antigua o el binario interno de la empresa. La extensión .hack, typechecker hh_client, HTTP vía Proxygen integrado o FastCGI. WordPress, Laravel y Composer no entran en esta lista.
Historial: lo que este post instalaba en 2017
Ubuntu 14.04/16.04, clave GPG antigua, HHVM 3.15.2 hablando PHP 5 y un trozo del 7. No ejecutes esto en una máquina nueva.
# NÃO use em 2026 — chave e série obsoletas
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
sudo add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main"
sudo apt-get update
sudo apt-get install hhvm
hhvm --version
# HipHop VM 3.15.2 (rel)
La salida de la época: compiler tags/HHVM-3.15.2, repo schema 608339137764e8365964a1adaa7a27d125b6076f. El “About HHVM” original todavía hablaba de “Hack and PHP”. Esta frase murió en la 4.0.
Cierre
El HHVM ganó la discusión de 2014–2017: JIT, Hack, facebook.com sin HPHPc. El PHP 7/8 copió la lección de rendimiento y se quedó con el ecosistema. En 2026, en Ubuntu, apt install php-fpm es el sucesor de este howto. La H naranja en la portada sigue siendo la de la VM, solo que ahora la VM habla Hack, no el index.php de tu WordPress.
El kernel debajo: Linux cumple 35 años. Contenedor alrededor, si es el caso: A história do Docker.