GNU/Linux >> Tutoriales Linux >  >> Debian

Explicación de HHVM:instale HHVM en Ubuntu 16.04 / Debian 8

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.

Debian:

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

Ubuntu:

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:225d4323575bbc8a498dc809a1c41354f63ca83 

Prueba 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.php

Coloque 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.php

Deberí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.ini

Modifique 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/public

Puede 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 restart

Cree un directorio /var/www/public que contendrá los documentos de su sitio web.

sudo mkdir -p /var/www/public

Cree un archivo de prueba para verificar que HHVM está atendiendo las solicitudes web.

sudo vi /var/www/public/index.php

Pegue 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-ss

Obtendrá 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 apache2

La ejecución de los siguientes comandos configurará Apache para trabajar con HHVM para atender la solicitud web.

sudo /usr/share/hhvm/install_fastcgi.sh

Por 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.conf

Configúrelo como se muestra a continuación.

ProxyPassMatch ^/(.+\.(hh|php)(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1

Reinicie los servicios apache y HHVM.

sudo /etc/init.d/apache2 restartsudo /etc/init.d/hhvm restart

Nginx:

Instale Nginx en su máquina usando el siguiente comando.

sudo apt-get install -y nginx

La ejecución de los siguientes comandos configurará Nginx para trabajar con HHVM para atender la solicitud web.

sudo /usr/share/hhvm/install_fastcgi.sh

De 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/default

Modifique 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 restart

Para 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.php

Pegue el contenido a continuación en el archivo de arriba.