![](https://m.unixlinux.online/article/uploadfiles/202204/2022042711012609.png)
HHVM (HipHop Virtual Machine) es una máquina virtual de código abierto diseñada para ejecutar programas escritos en Hack y PHP. HHVM es desarrollado por Facebook y sus códigos fuente están alojados en Github; lanzado bajo los términos de la licencia de PHP y Zend.
HHVM utiliza el principio de compilación JIT (justo a tiempo) que ayuda a lograr un rendimiento superior sin comprometer la flexibilidad de desarrollo que proporciona PHP. HHVM ejecuta código PHP o Hack en código de bytes HipHop intermedio (HHBC) y luego se traduce dinámicamente al código de máquina x86_64.
HHVM se puede instalar en la mayoría de las principales plataformas Linux; también un soporte experimental en Mac OS X 10.10 y se está trabajando para soportar el sistema operativo Windows.
HHVM ofrece los paquetes prediseñados para los sistemas operativos Debian y Ubuntu.
Ubuntu 16.04 (Xenial)
Ubuntu 15.10 (Wily Werewolf)
Ubuntu 15.04 (Vivid)
Ubuntu 14.04 (Trusty)
Debian 8 (Jessie)
Debian 7 (Wheezy) )
También puede compilar desde el código fuente para otras versiones de distribuciones de Linux.
Lanzamiento:
Facebook desarrolla activamente HHVM y puede obtener una versión completa (versión estable) cada ocho semanas. Cada tercer lanzamiento importante de HHVM se considera un lanzamiento de soporte a largo plazo (LTS). LTS es compatible durante casi un año y está respaldado con correcciones de errores críticos y parches de seguridad.
Si aún tiene dudas, visite una publicación de blog sobre los lanzamientos de LTS.
Esta guía lo ayuda a configurar HHVM en Ubuntu 16.04 y Debian 8. Esta guía debería funcionar en versiones anteriores de Ubuntu como Ubuntu 15.10, Ubuntu 14.04 LTS, Ubuntu 15.04 y Debian 7.
Agregar repositorio HHVM:
Ahora, agregue un repositorio HHVM en su máquina antes de continuar con la instalación.
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449echo deb http://dl.hhvm.com/debian $(lsb_release -sc) principal | sudo tee /etc/apt/sources.list.d/hhvm.list
sudo apt-get install software-properties-commonsudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449sudo add-apt-repository "deb http://dl. hhvm.com/ubuntu $(lsb_release -sc) principal"PD:Para Ubuntu, reemplace la variable “$(lsb_release -sc)” con el nombre en clave de su distribución. Ej.:xenial
Instalar HHVM en Ubuntu 16.04/Debian 8:
Actualice el caché del repositorio y continúe con la instalación de HHVM, esto instalará la última versión de HHVM en su máquina.
sudo apt-get actualizacionesudo apt-get install -y hhvm
Verifique la versión de HHVM.
$ php -vHipHop VM 3.15.0 (rel) Compilador:tags/HHVM-3.15.0-0-g92a682ebaa3c85b84857852d8621f528607fe27dEsquema de repositorio:225d4323575bbc8a498dc809a1c41354f63ca83Prueba HHVM:
Simplemente puede invocar un comando para iniciar HHVM. Puede controlar el servidor HHVM usando argumentos adicionales con el comando "hhvm".
Vamos a crear un archivo PHP para atender la solicitud a través de un navegador web en su directorio de trabajo actual.
vi prueba.phpColoque el contenido a continuación en el archivo de arriba.
![]()
Ejecute el siguiente comando.
hhvm -m servidor -p 8080-m representa el modo y aquí indica que HHVM se está ejecutando como modo de servidor HTTP
-p configura el puerto TCP que usa HHVM para escuchar solicitudes HTTP.Conozca más sobre los modos HHVM.
Navegue su navegador web a la siguiente URL.
http://ip-add-re-ss:8080/test.phpDebería ver la página a continuación que confirma que HHVM está funcionando bien.
![]()
Tipos de servidor:
El tipo de servidor se clasifica en función de cómo HHVM sirve la página para la solicitud de los usuarios; tiene soporte incorporado para tipos de servidor:Proxygen y FastCGI .
Generador de proxy de HHVM:
El modo Proxygen es un servidor web completo, integrado directamente en HHVM. Es muy fácil de configurar y poner en marcha y atiende rápidamente las solicitudes web. El modo Porxygen proporciona un servidor web de alto rendimiento equivalente a FastCGI y Nginx.
Como ya dije, los parámetros de configuración son muy simples y fáciles de configurar. El archivo de configuración principal de HHVM es /etc/hhvm/server.ini .
Edite el archivo de configuración como se muestra a continuación.
sudo vi /etc/hhvm/server.iniModifique las configuraciones de HHVM según sus requisitos.
; configura el puerto TCP que usa HHVM para escuchar solicitudes HTTP.hhvm.server.port =80; Configura el servidor HHVM typehhvm.server.type =proxygen; Configura el documento predeterminado para el directorio hhvm.server.default_document =index.php; Habilitación de Logshhvm.log.use_log_file =truehhvm.log.file =/var/log/hhvm/error.log; Configura el documento de error para el directorio hhvm.server.error_document404 =index.php; Establece el directorio predeterminado para el servidor web HHVM cuando se inicia hhvm.server.source_root=/var/www/publicPuede ejecutar estos comandos para configurar HHVM para que se inicie en el arranque y para iniciarlo como un servicio ahora:
sudo update-rc.d hhvm defaultssudo service hhvm restartCree un directorio /var/www/public que contendrá los documentos de su sitio web.
sudo mkdir -p /var/www/publicCree un archivo de prueba para verificar que HHVM está atendiendo las solicitudes web.
sudo vi /var/www/public/index.phpPegue el contenido a continuación en el archivo de arriba.
![]()
Acceda al servidor web de HHVM a través del navegador de su elección.
http://ip-add-re-ssObtendrá la página PHPInfo donde puede encontrar toda la información sobre PHP.
![]()
HHVM FastCGI:
En este modo, HHVM se ubica entre su documento web (.php ) y servidor web (Apache o Nginx ). FastCGI proporciona un alto rendimiento en el servicio rápido de páginas web, es muy similar a PHP-FPM. HHVM escucha en un socket TCP (localhost:9000 ) o un zócalo UNIX. Servidor web (Nginx o Apache ) escuchará en el puerto 80 o 443 para solicitudes web.
Cuando llega una nueva solicitud, el servidor web realiza una conexión a HHVM o reutiliza una de las conexiones previamente abiertas, utilizando HHVM FastCGI. Una vez que se establece la conexión, el servidor web proporciona a HHVM información como encabezados de solicitud, cuerpo y ruta del archivo que se ejecutará. Ahora, HHVM calcula la información recibida y la envía de vuelta al servidor web usando FastCGI nuevamente. Por último, el servidor web enviará una respuesta al cliente con los datos solicitados.
Apache:
Instale el servidor Apache en su máquina usando el siguiente comando.
sudo apt-get install -y apache2La ejecución de los siguientes comandos configurará Apache para trabajar con HHVM para atender la solicitud web.
sudo /usr/share/hhvm/install_fastcgi.shPor defecto, apache buscará las páginas web en /var/www/html directorio para atender las solicitudes, pero es posible que no sepa cómo manejar .php archivos Por lo tanto, deberá indicarle a apache que tome cualquier archivo que termine en .hh o .php y lo envió a HHVM a través de fastCGI.
Edite el siguiente archivo de configuración.
sudo vi /etc/apache2/mods-enabled/hhvm_proxy_fcgi.confConfigúrelo como se muestra a continuación.
ProxyPassMatch ^/(.+\.(hh|php)(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1Reinicie los servicios apache y HHVM.
sudo /etc/init.d/apache2 restartsudo /etc/init.d/hhvm restartNginx:
Instale Nginx en su máquina usando el siguiente comando.
sudo apt-get install -y nginxLa ejecución de los siguientes comandos configurará Nginx para trabajar con HHVM para atender la solicitud web.
sudo /usr/share/hhvm/install_fastcgi.shDe forma predeterminada, Nginx buscará las páginas web en /usr/share/nginx/htm l (depende del sistema operativo) para atender las solicitudes, pero es posible que no sepa cómo manejar .php archivos Así que le indicarías a Nginx que tome cualquier archivo que termine en .hh o .php y lo envió a HHVM a través de fastCGI.
Edite el siguiente archivo de configuración.
sudo vi /etc/nginx/sites-disponible/defaultModifique debajo de la línea, agregue index.php a su línea de índice.
De:
índice índice.html índice.htm;Para:
índice índice.php índice.html índice.htm;Reinicie los servicios apache y HHVM.
sudo /etc/init.d/nginx restartsudo /etc/init.d/hhvm restartPara probar el tipo FastCGI, cree/coloque el archivo .php en los directorios predeterminados.
Apache y Nginx Ubuntu 16.04, 15.04/Debian 8:
$ sudo vi /var/www/html/index.phpPegue el contenido a continuación en el archivo de arriba.