{"id":123,"date":"2017-04-05T21:00:03","date_gmt":"2017-04-06T00:00:03","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/2017\/04\/instalando-hhvm-no-ubuntu\/"},"modified":"2026-09-08T02:41:28","modified_gmt":"2026-09-08T05:41:28","slug":"instalando-hhvm-no-ubuntu","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/en\/2017\/04\/instalando-hhvm-no-ubuntu\/","title":{"rendered":"Instalando HHVM no Ubuntu"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"Mascote do LinuxPro com a m\u00e3o apoiada no servidor ativo do caminho verde, apontando para o caminho cinza encerrado do HHVM\" src=\"\/wp-content\/uploads\/2026\/09\/hhvm-v3.webp\" width=\"1052\" height=\"652\" \/><\/p>\n<div style=\"background:#fff8e1;border-left:4px solid #8b1a1a;padding:.8em 1em;margin:1em 0\"><strong>Nota (2026):<\/strong> o texto original era Ubuntu 14.04\/16.04 e HHVM 3.15.2 rodando PHP. O HHVM <strong>abandonou o PHP<\/strong>: a s\u00e9rie 3.30 (2018) foi a \u00faltima compat\u00edvel; a 4.0 (11 de fevereiro de 2019) s\u00f3 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 \u00e9 <strong>PHP 8.5 + PHP-FPM + OPcache<\/strong>. Os comandos de 2017 ficam no fim, s\u00f3 como hist\u00f3rico.<\/div>\n<p>Em 2017 o HHVM era o atalho de performance: JIT do Facebook, WordPress e Laravel mais r\u00e1pidos que o PHP 5.6\/7.0 do Ubuntu. Nove anos depois o Zend Engine ganhou o jogo \u2014 PHP 7, depois 8, OPcache de verdade, JIT no 8.0, e em 2026 o PHP 8.5.10 (27 de agosto) j\u00e1 vem com OPcache embutido. Quem ainda digita <code data-no-translation=\"\">apt install hhvm<\/code> pensando em PHP instala uma VM de outra linguagem.<\/p>\n<p><!-- more --><\/p>\n<h2>De HipHop a Hack: o que o HHVM foi<\/h2>\n<p>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, <code data-no-translation=\"\">eval()<\/code> n\u00e3o existia, e o teto de performance chegou. Em 2011 Jason Evans anunciou o sucessor: HipHop Virtual Machine. C\u00f3digo vira bytecode HHBC; o JIT traduz para x86-64 em tempo de execu\u00e7\u00e3o. No primeiro trimestre de 2013 o facebook.com largou o HPHPc.<\/p>\n<p>Junto com o HHVM 3.0 (mar\u00e7o de 2014) saiu o <strong>Hack<\/strong>: PHP com tipos graduais, sem <code data-no-translation=\"\">goto<\/code> e sem vari\u00e1vel vari\u00e1vel. A VM passou a servir duas linguagens. Em setembro de 2018 Fred Emmott avisou o \u00f3bvio \u2014 PHP 7 tinha divergido demais. A 3.30 seria a \u00faltima com PHP. Em 11 de fevereiro de 2019 a 4.0 tirou o <code data-no-translation=\"\">&lt;?php<\/code> do mapa. Quem queria WordPress r\u00e1pido ficou com o PHP-FPM; o HHVM ficou para o Hack da Meta (e, um tempo, do Slack).<\/p>\n<h2>O que mudou desde 2017<\/h2>\n<ul>\n<li>Ubuntu 14.04 e 16.04 acabaram. LTS atuais: <strong>24.04<\/strong> (PHP 8.3 nos reposit\u00f3rios) e <strong>26.04 Resolute<\/strong> (PHP 8.5 default).<\/li>\n<li>PHP 8.5 saiu em 20 de novembro de 2025; o patch de 27 de agosto de 2026 \u00e9 o <strong>8.5.10<\/strong>. OPcache deixou de ser extens\u00e3o opcional \u2014 vai no core. JIT com buffer default de 64&nbsp;MB.<\/li>\n<li>O reposit\u00f3rio <code data-no-translation=\"\">dl.hhvm.com<\/code> e a chave GPG <code data-no-translation=\"\">0x5a16e7281be7a449<\/code> deste post n\u00e3o servem mais para PHP. A chave posterior (<code data-no-translation=\"\">0xB4112585D386EB94<\/code>) tamb\u00e9m n\u00e3o devolve um HHVM que rode Laravel.<\/li>\n<li>Em 27 de outubro de 2023 Paul Bissonette anunciou: sem release oficial, sem GCC, o c\u00f3digo continua no GitHub para quem compila. N\u00e3o h\u00e1 pacote <code data-no-translation=\"\">apt<\/code> confi\u00e1vel para produ\u00e7\u00e3o PHP.<\/li>\n<\/ul>\n<h2>2026: PHP 8.5 e PHP-FPM no Ubuntu<\/h2>\n<p>Se o objetivo do post de 2017 era \u201cPHP mais r\u00e1pido no Ubuntu\u201d, hoje \u00e9 isto. No 26.04 o PHP 8.5 j\u00e1 est\u00e1 no arquivo oficial:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">sudo apt update\nsudo apt install php-cli php-fpm php-mysql php-xml php-mbstring php-curl php-zip php-gd php-intl php-bcmath\nphp -v\n# PHP 8.5.x (cli) \u2026 with Zend OPcache v8.5.x\nsystemctl status php8.5-fpm --no-pager\n<\/code><\/pre>\n<p>No <strong>24.04 LTS<\/strong> o arquivo traz 8.3. Para 8.5, o PPA do Ond\u0159ej Sur\u00fd (o mesmo de sempre):<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej\/php\nsudo apt update\nsudo apt install php8.5-cli php8.5-fpm php8.5-{mysql,xml,mbstring,curl,zip,gd,intl,bcmath}\nsudo update-alternatives --set php \/usr\/bin\/php8.5\nphp -v\n<\/code><\/pre>\n<p>There is no package <code data-no-translation=\"\">php8.5-opcache<\/code>: o OPcache vai no runtime. Socket do FPM: <code data-no-translation=\"\">\/run\/php\/php8.5-fpm.sock<\/code>.<\/p>\n<h2>OPcache e JIT, o que o HHVM prometia<\/h2>\n<p>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:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">sudo tee \/etc\/php\/8.5\/fpm\/conf.d\/99-opcache.ini &lt;&lt;'EOF'\nopcache.enable=1\nopcache.memory_consumption=256\nopcache.interned_strings_buffer=32\nopcache.max_accelerated_files=20000\nopcache.validate_timestamps=0\nopcache.jit=tracing\nopcache.jit_buffer_size=64M\nEOF\nsudo systemctl restart php8.5-fpm\nphp -i | grep -E 'opcache.enable|opcache.jit'\n<\/code><\/pre>\n<p><code data-no-translation=\"\">validate_timestamps=0<\/code> em produ\u00e7\u00e3o: depois do deploy, reinicie o FPM. JIT ajuda pouco em WordPress puro (I\/O de banco); ajuda em trecho CPU-bound. N\u00e3o ligue Xdebug na frente do JIT.<\/p>\n<h2>Nginx na frente do FPM<\/h2>\n<p>O HHVM falava FastCGI. O PHP-FPM tamb\u00e9m. No Nginx, o <code data-no-translation=\"\">fastcgi_pass<\/code> aponta para o socket da vers\u00e3o:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-nginx\" data-no-translation=\"\">location ~ .php$ {\n    include snippets\/fastcgi-php.conf;\n    fastcgi_pass unix:\/run\/php\/php8.5-fpm.sock;\n}\n<\/code><\/pre>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">sudo apt install nginx\nsudo nginx -t &amp;&amp; sudo systemctl reload nginx\n<\/code><\/pre>\n<p>Quem hospeda v\u00e1rios sites no mesmo Ubuntu ainda pode empilhar painel em cima \u2014 o recorte antigo deste blog est\u00e1 em <a href=\"\/en\/2017\/04\/ispconfig3-no-debian\/\">ISPConfig no Debian<\/a> e na <a href=\"\/en\/2017\/01\/a-historia-do-ispconfig\/\">hist\u00f3ria do ISPConfig<\/a>.<\/p>\n<h2>Ainda quer Hack?<\/h2>\n<p>A\u00ed o HHVM faz sentido. N\u00e3o para PHP. O runtime vive em <a href=\"https:\/\/github.com\/facebook\/hhvm\">facebook\/hhvm<\/a> (commits seguem em 2026); a linguagem em <a href=\"https:\/\/hacklang.org\">hacklang.org<\/a>. Pacote pronto para Ubuntu atual n\u00e3o \u00e9 o caminho de produ\u00e7\u00e3o: a Meta n\u00e3o publica mais release. Compilar do git, Docker image antiga ou o bin\u00e1rio interno da empresa. Extens\u00e3o <code data-no-translation=\"\">.hack<\/code>, typechecker <code data-no-translation=\"\">hh_client<\/code>, HTTP via Proxygen embutido ou FastCGI. WordPress, Laravel e Composer n\u00e3o entram nessa lista.<\/p>\n<h2>Hist\u00f3rico: o que este post instalava em 2017<\/h2>\n<p>Ubuntu 14.04\/16.04, chave GPG antiga, HHVM 3.15.2 falando PHP 5 e um peda\u00e7o do 7. N\u00e3o rode isso em m\u00e1quina nova.<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\"># N\u00c3O use em 2026 \u2014 chave e s\u00e9rie obsoletas\nsudo apt-key adv --recv-keys --keyserver hkp:\/\/keyserver.ubuntu.com:80 0x5a16e7281be7a449\nsudo add-apt-repository \"deb http:\/\/dl.hhvm.com\/ubuntu $(lsb_release -sc) main\"\nsudo apt-get update\nsudo apt-get install hhvm\nhhvm --version\n# HipHop VM 3.15.2 (rel)\n<\/code><\/pre>\n<p>A sa\u00edda da \u00e9poca: compiler <code data-no-translation=\"\">tags\/HHVM-3.15.2<\/code>, repo schema <code data-no-translation=\"\">608339137764e8365964a1adaa7a27d125b6076f<\/code>. O \u201cAbout HHVM\u201d original ainda falava em \u201cHack and PHP\u201d. Essa frase morreu na 4.0.<\/p>\n<h2>O que ficou<\/h2>\n<p>O HHVM ganhou a discuss\u00e3o de 2014\u20132017: JIT, Hack, facebook.com sem HPHPc. O PHP 7\/8 copiou a li\u00e7\u00e3o de performance e ficou com o ecossistema. Em 2026, no Ubuntu, <code data-no-translation=\"\">apt install php-fpm<\/code> \u00e9 o sucessor deste howto. O H laranja na capa continua o da VM \u2014 s\u00f3 que a VM agora fala Hack, n\u00e3o o <code data-no-translation=\"\">index.php<\/code> do seu WordPress.<\/p>\n<p>O kernel embaixo: <a href=\"\/en\/2026\/09\/linux-35-anos\/\">Linux faz 35 anos<\/a>. Container em volta, se for o caso: <a href=\"\/en\/2026\/09\/a-historia-do-docker\/\">A hist\u00f3ria do Docker<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Em 2017 o HHVM era o atalho de performance: JIT do Facebook, WordPress e Laravel mais r\u00e1pidos que o PHP 5.6\/7.0 do Ubuntu. Nove anos depois o Zend Engine ganhou o jogo \u2014 PHP 7, depois 8, OPcache de verdade, &#8230; <a title=\"Instalando HHVM no Ubuntu\" class=\"read-more\" href=\"https:\/\/www.linuxpro.com.br\/en\/2017\/04\/instalando-hhvm-no-ubuntu\/\" aria-label=\"Read more about Instalando HHVM no Ubuntu\">Read more<\/a><\/p>","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[59,2,3],"tags":[239,60,14,4,240,237,238,5],"class_list":["post-123","post","type-post","status-publish","format-standard","hentry","category-hhvm","category-linux","category-ubuntu","tag-hack","tag-hhvm","tag-howto","tag-linux","tag-nginx","tag-php","tag-php-fpm","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/comments?post=123"}],"version-history":[{"count":5,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/123\/revisions"}],"predecessor-version":[{"id":1082,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/123\/revisions\/1082"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/media?parent=123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/categories?post=123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/tags?post=123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}