{"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\/es\/2017\/04\/instalando-hhvm-no-ubuntu\/","title":{"rendered":"Instalando HHVM en 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> el texto original era Ubuntu 14.04\/16.04 y HHVM 3.15.2 ejecutando PHP. HHVM <strong>abandon\u00f3 PHP<\/strong>: la serie 3.30 (2018) fue la \u00faltima compatible; la 4.0 (11 de febrero de 2019) solo ejecuta Hack. En 27 de octubre de 2023 Meta dej\u00f3 de publicar lanzamientos oficiales. Para WordPress, Laravel, MediaWiki y el resto del ecosistema PHP, el camino actual es <strong>PHP 8.5 + PHP-FPM + OPcache<\/strong>. Los comandos de 2017 est\u00e1n al final, solo como hist\u00f3rico.<\/div>\n<p>En 2017 HHVM era el atajo de rendimiento: JIT de Facebook, WordPress y Laravel m\u00e1s r\u00e1pidos que el PHP 5.6\/7.0 de Ubuntu. Nueve a\u00f1os despu\u00e9s Zend Engine gan\u00f3 la partida \u2014 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\u00eda escribe <code data-no-translation=\"\">apt install hhvm<\/code> pensando en PHP instala una VM de otro lenguaje.<\/p>\n<p><!-- more --><\/p>\n<h2>De HipHop a Hack: lo que fue HHVM<\/h2>\n<p>Facebook se cans\u00f3 de interpretar PHP en 2010. Primero lleg\u00f3 HPHPc: un transpilador de PHP a C++. Compilar todo el sitio en cada despliegue era lento, <code data-no-translation=\"\">eval()<\/code> no exist\u00eda, y se alcanz\u00f3 el techo de rendimiento. En 2011 Jason Evans anunci\u00f3 el sucesor: HipHop Virtual Machine. El c\u00f3digo se convierte al bytecode HHBC; el JIT lo traduce a x86-64 en tiempo de ejecuci\u00f3n. En el primer trimestre de 2013 facebook.com abandon\u00f3 HPHPc.<\/p>\n<p>Junto con HHVM 3.0 (marzo de 2014) sali\u00f3 el <strong>Hack<\/strong>: PHP con tipos graduales, sin <code data-no-translation=\"\">goto<\/code> y sin variable variable. La VM pas\u00f3 a servir a dos lenguajes. En septiembre de 2018 Fred Emmott avis\u00f3 lo obvio: PHP 7 hab\u00eda divergido demasiado. 3.30 ser\u00eda la \u00faltima con PHP. En 11 de febrero de 2019 4.0 quit\u00f3 el <code data-no-translation=\"\">&lt;?php<\/code> del mapa. Quien quer\u00eda WordPress r\u00e1pido se qued\u00f3 con PHP-FPM; HHVM qued\u00f3 para Hack de Meta (y, durante un tiempo, de Slack).<\/p>\n<h2>Lo que cambi\u00f3 desde 2017<\/h2>\n<ul>\n<li>Ubuntu 14.04 y 16.04 llegaron a su fin. LTS actuales: <strong>24.04<\/strong> (PHP 8.3 en los repositorios) y <strong>26.04 Resolute<\/strong> (PHP 8.5 por defecto).<\/li>\n<li>PHP 8.5 sali\u00f3 el 20 de noviembre de 2025; el parche del 27 de agosto de 2026 es el <strong>8.5.10<\/strong>. OPcache dej\u00f3 de ser una extensi\u00f3n opcional: va en el core. JIT con b\u00fafer por defecto de 64 MB.<\/li>\n<li>El repositorio <code data-no-translation=\"\">dl.hhvm.com<\/code> y la clave GPG <code data-no-translation=\"\">0x5a16e7281be7a449<\/code> de esta entrada ya no sirven para PHP. La clave posterior (<code data-no-translation=\"\">0xB4112585D386EB94<\/code>) tampoco devuelve un HHVM que ejecute Laravel.<\/li>\n<li>El 27 de octubre de 2023, Paul Bissonette anunci\u00f3: sin lanzamiento oficial, sin GCC, el c\u00f3digo sigue en GitHub para quien lo compile. No hay un paquete <code data-no-translation=\"\">apt<\/code> fiable para PHP en producci\u00f3n.<\/li>\n<\/ul>\n<h2>2026: PHP 8.5 y PHP-FPM en Ubuntu<\/h2>\n<p>Si el objetivo de la entrada de 2017 era \u201cPHP m\u00e1s r\u00e1pido en Ubuntu\u201d, hoy es esto. En 26.04, PHP 8.5 ya est\u00e1 en el repositorio 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>En el <strong>24.04 LTS<\/strong> el repositorio trae 8.3. Para 8.5, el PPA de Ond\u0159ej Sur\u00fd (el de siempre):<\/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>No existe el paquete <code data-no-translation=\"\">php8.5-opcache<\/code>: OPcache va en el runtime. Socket del FPM: <code data-no-translation=\"\">\/run\/php\/php8.5-fpm.sock<\/code>.<\/p>\n<h2>OPcache y JIT, lo que promet\u00eda HHVM<\/h2>\n<p>La ganancia que HHVM vend\u00eda en 2016 (Kinsta, WordPress, Drupal) PHP 8 la ofrece con OPcache activado y, bajo carga de CPU, con JIT. En 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> en producci\u00f3n: 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.<\/p>\n<h2>Nginx delante de FPM<\/h2>\n<p>HHVM hablaba FastCGI. PHP-FPM tambi\u00e9n. En Nginx, el <code data-no-translation=\"\">fastcgi_pass<\/code> apunta al socket de la versi\u00f3n:<\/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>Quien aloja varios sitios en el mismo Ubuntu todav\u00eda puede apilar un panel encima: el recorte antiguo de este blog est\u00e1 en <a href=\"\/es\/2017\/04\/ispconfig3-no-debian\/\">ISPConfig en Debian<\/a> y en la <a href=\"\/es\/2017\/01\/a-historia-do-ispconfig\/\">historia de ISPConfig<\/a>.<\/p>\n<h2>\u00bfTodav\u00eda quieres Hack?<\/h2>\n<p>Ah\u00ed HHVM tiene sentido. No para PHP. El runtime vive en <a href=\"https:\/\/github.com\/facebook\/hhvm\">facebook\/hhvm<\/a> (los commits siguen en 2026); el lenguaje en <a href=\"https:\/\/hacklang.org\">hacklang.org<\/a>. Un paquete listo para la Ubuntu actual no es la v\u00eda de producci\u00f3n: Meta ya no publica releases. Compilar desde git, una imagen Docker antigua o el binario interno de la empresa. La extensi\u00f3n <code data-no-translation=\"\">.hack<\/code>, typechecker <code data-no-translation=\"\">hh_client<\/code>, HTTP v\u00eda Proxygen integrado o FastCGI. WordPress, Laravel y Composer no entran en esta lista.<\/p>\n<h2>Historial: lo que este post instalaba en 2017<\/h2>\n<p>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\u00e1quina nueva.<\/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>La salida de la \u00e9poca: compiler <code data-no-translation=\"\">tags\/HHVM-3.15.2<\/code>, repo schema <code data-no-translation=\"\">608339137764e8365964a1adaa7a27d125b6076f<\/code>. El \u201cAbout HHVM\u201d original todav\u00eda hablaba de \u201cHack and PHP\u201d. Esta frase muri\u00f3 en la 4.0.<\/p>\n<h2>Cierre<\/h2>\n<p>El HHVM gan\u00f3 la discusi\u00f3n de 2014\u20132017: JIT, Hack, facebook.com sin HPHPc. El PHP 7\/8 copi\u00f3 la lecci\u00f3n de rendimiento y se qued\u00f3 con el ecosistema. En 2026, en Ubuntu, <code data-no-translation=\"\">apt install php-fpm<\/code> 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 <code data-no-translation=\"\">index.php<\/code> de tu WordPress.<\/p>\n<p>El kernel debajo: <a href=\"\/es\/2026\/09\/linux-35-anos\/\">Linux cumple 35 a\u00f1os<\/a>. Contenedor alrededor, si es el caso: <a href=\"\/es\/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 en Ubuntu\" class=\"read-more\" href=\"https:\/\/www.linuxpro.com.br\/es\/2017\/04\/instalando-hhvm-no-ubuntu\/\" aria-label=\"Leer m\u00e1s sobre Instalando HHVM no Ubuntu\">Leer m\u00e1s<\/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\/es\/wp-json\/wp\/v2\/posts\/123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/comments?post=123"}],"version-history":[{"count":5,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/123\/revisions"}],"predecessor-version":[{"id":1082,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/123\/revisions\/1082"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/media?parent=123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/categories?post=123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/tags?post=123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}