Instalando HHVM no Ubuntu

Mascote do LinuxPro com a mão apoiada no servidor ativo do caminho verde, apontando para o caminho cinza encerrado do HHVM

Nota (2026): o texto original era Ubuntu 14.04/16.04 e HHVM 3.15.2 rodando PHP. O HHVM abandonou o PHP: a série 3.30 (2018) foi a última compatível; a 4.0 (11 de fevereiro de 2019) só executa Hack. Em 27 de outubro de 2023 a Meta parou de publicar releases oficiais. Para WordPress, Laravel, MediaWiki e o resto do ecossistema PHP, o caminho atual é PHP 8.5 + PHP-FPM + OPcache. Os comandos de 2017 ficam no fim, só como histórico.

Em 2017 o HHVM era o atalho de performance: JIT do Facebook, WordPress e Laravel mais rápidos que o PHP 5.6/7.0 do Ubuntu. Nove anos depois o Zend Engine ganhou o jogo — PHP 7, depois 8, OPcache de verdade, JIT no 8.0, e em 2026 o PHP 8.5.10 (27 de agosto) já vem com OPcache embutido. Quem ainda digita apt install hhvm pensando em PHP instala uma VM de outra linguagem.

De HipHop a Hack: o que o HHVM foi

O Facebook cansou de interpretar PHP em 2010. Primeiro veio o HPHPc: transpiler de PHP para C++. Compilar o site inteiro a cada deploy era lento, eval() não existia, e o teto de performance chegou. Em 2011 Jason Evans anunciou o sucessor: HipHop Virtual Machine. Código vira bytecode HHBC; o JIT traduz para x86-64 em tempo de execução. No primeiro trimestre de 2013 o facebook.com largou o HPHPc.

Junto com o HHVM 3.0 (março de 2014) saiu o Hack: PHP com tipos graduais, sem goto e sem variável variável. A VM passou a servir duas linguagens. Em setembro de 2018 Fred Emmott avisou o óbvio — PHP 7 tinha divergido demais. A 3.30 seria a última com PHP. Em 11 de fevereiro de 2019 a 4.0 tirou o <?php do mapa. Quem queria WordPress rápido ficou com o PHP-FPM; o HHVM ficou para o Hack da Meta (e, um tempo, do Slack).

O que mudou desde 2017

  • Ubuntu 14.04 e 16.04 acabaram. LTS atuais: 24.04 (PHP 8.3 nos repositórios) e 26.04 Resolute (PHP 8.5 default).
  • PHP 8.5 saiu em 20 de novembro de 2025; o patch de 27 de agosto de 2026 é o 8.5.10. OPcache deixou de ser extensão opcional — vai no core. JIT com buffer default de 64 MB.
  • O repositório dl.hhvm.com e a chave GPG 0x5a16e7281be7a449 deste post não servem mais para PHP. A chave posterior (0xB4112585D386EB94) também não devolve um HHVM que rode Laravel.
  • Em 27 de outubro de 2023 Paul Bissonette anunciou: sem release oficial, sem GCC, o código continua no GitHub para quem compila. Não há pacote apt confiável para produção PHP.

2026: PHP 8.5 e PHP-FPM no Ubuntu

Se o objetivo do post de 2017 era “PHP mais rápido no Ubuntu”, hoje é isto. No 26.04 o PHP 8.5 já está no arquivo 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

No 24.04 LTS o arquivo traz 8.3. Para 8.5, o PPA do Ondřej Surý (o mesmo de sempre):

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

There is no package php8.5-opcache: o OPcache vai no runtime. Socket do FPM: /run/php/php8.5-fpm.sock.

OPcache e JIT, o que o HHVM prometia

O ganho que o HHVM vendia em 2016 (Kinsta, WordPress, Drupal) o PHP 8 entrega com OPcache ligado e, em carga de CPU, com JIT. No 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 em produção: depois do deploy, reinicie o FPM. JIT ajuda pouco em WordPress puro (I/O de banco); ajuda em trecho CPU-bound. Não ligue Xdebug na frente do JIT.

Nginx na frente do FPM

O HHVM falava FastCGI. O PHP-FPM também. No Nginx, o fastcgi_pass aponta para o socket da versão:

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

Quem hospeda vários sites no mesmo Ubuntu ainda pode empilhar painel em cima — o recorte antigo deste blog está em ISPConfig no Debian e na história do ISPConfig.

Ainda quer Hack?

Aí o HHVM faz sentido. Não para PHP. O runtime vive em facebook/hhvm (commits seguem em 2026); a linguagem em hacklang.org. Pacote pronto para Ubuntu atual não é o caminho de produção: a Meta não publica mais release. Compilar do git, Docker image antiga ou o binário interno da empresa. Extensão .hack, typechecker hh_client, HTTP via Proxygen embutido ou FastCGI. WordPress, Laravel e Composer não entram nessa lista.

Histórico: o que este post instalava em 2017

Ubuntu 14.04/16.04, chave GPG antiga, HHVM 3.15.2 falando PHP 5 e um pedaço do 7. Não rode isso em máquina nova.

# 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)

A saída da época: compiler tags/HHVM-3.15.2, repo schema 608339137764e8365964a1adaa7a27d125b6076f. O “About HHVM” original ainda falava em “Hack and PHP”. Essa frase morreu na 4.0.

O que ficou

O HHVM ganhou a discussão de 2014–2017: JIT, Hack, facebook.com sem HPHPc. O PHP 7/8 copiou a lição de performance e ficou com o ecossistema. Em 2026, no Ubuntu, apt install php-fpm é o sucessor deste howto. O H laranja na capa continua o da VM — só que a VM agora fala Hack, não o index.php do seu WordPress.

O kernel embaixo: Linux faz 35 anos. Container em volta, se for o caso: A história do Docker.