Búsqueda de sitios web

Configuración de HHVM y Nginx/Apache de alto rendimiento con MariaDB en Debian/Ubuntu


HHVM significa HipHop Virtual Machine, es una máquina virtual de código abierto creada para ejecutar Hack (es un lenguaje de programación para HHVM) y Aplicaciones escritas en PHP. HHVM utiliza una ruta de compilación de último minuto para lograr un rendimiento notable y al mismo tiempo mantener la flexibilidad a la que son adictos los programadores de PHP. Hasta la fecha, HHVM ha logrado un aumento de más de 9 veces en el rendimiento de solicitudes http y una reducción de más de 5 veces en la utilización de la memoria (cuando se ejecuta con poca memoria del sistema) para Facebook en comparación con el motor PHP + APC (Caché PHP alternativo). ).

HHVM también se puede utilizar junto con un servidor web basado en FastCGI como Nginx o Apache.

En este tutorial veremos los pasos para configurar el servidor web Nginx/Apache, el servidor de base de datos MariaDB y HHVM. . Para esta configuración, usaremos Ubuntu 15.04 (64 bits), ya que HHVM se ejecuta solo en sistemas de 64 bits, aunque las distribuciones Debian y Linux Mint también son compatibles.

Paso 1: instalar Nginx y el servidor web Apache

1. Primero realice una actualización del sistema para actualizar la lista de repositorios con la ayuda de los siguientes comandos.


apt-get update && apt-get upgrade

2. Como dije, HHVM se puede usar con el servidor web Nginx y Apache. Por lo tanto, usted elige qué servidor web utilizará, pero aquí le mostraremos la instalación de los servidores web y cómo usarlos con HHVM.

Instalación de Nginx

En este paso, instalaremos el servidor web Nginx/Apache desde el repositorio de paquetes usando el siguiente comando.


apt-get install nginx

Instalando Apache


apt-get install apache2

En este punto, debería poder navegar a la siguiente URL y podrá ver la página predeterminada de Nginx o Apache.


http://localhost
OR
http://IP-Address
Página predeterminada de Nginx

Página predeterminada de Apache

Paso 2: instalar y configurar MariaDB

3. En este paso, instalaremos MariaDB, ya que proporciona un mejor rendimiento en comparación con MySQL.


apt-get install mariadb-client mariadb-server

4. Después de una instalación exitosa de MariaDB, puede iniciar MariaDB y establecer una contraseña de root para proteger la base de datos:


systemctl start mysql
mysql_secure_installation

Responda las siguientes preguntas escribiendo y o n y presione Intro. Asegúrese de leer atentamente las instrucciones antes de responder las preguntas.


Enter current password for root (enter for none) = press enter
Set root password? [Y/n] = y
Remove anonymous users[y/n] = y
Disallow root login remotely[y/n] = y
Remove test database and access to it [y/n] = y
Reload privileges tables now[y/n] = y 

5. Después de configurar la contraseña de root para MariaDB, puede conectarse al indicador de MariaDB con la nueva contraseña de root.


mysql -u root -p

Paso 3: Instalación de HHVM

6. En esta etapa instalaremos y configuraremos HHVM. Debe agregar el repositorio HHVM a su archivo sources.list y luego debe actualizar su lista de repositorios usando la siguiente serie de comandos.


wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | apt-key add -
echo deb http://dl.hhvm.com/ubuntu DISTRIBUTION_VERSION main | sudo tee /etc/apt/sources.list.d/hhvm.list
apt-get update

Importante: No olvide reemplazar DISTRIBUTION_VERSION con su versión de distribución de Ubuntu (es decir, lúcida, precisa o confiable). .) y también en Debian reemplazar con jessie o wheezy. En Linux Mint las instrucciones de instalación son las mismas, pero petra es la única distribución compatible actualmente.

Después de agregar el repositorio HHVM, puede instalarlo fácilmente como se muestra.


apt-get install -y hhvm

La instalación de HHVM lo iniciará ahora, pero no estará configurado para iniciarse automáticamente en el próximo inicio del sistema. Para configurar el inicio automático en el siguiente arranque, utilice el siguiente comando.


update-rc.d hhvm defaults

Paso 4: Configurar Nginx/Apache para hablar con HHVM

7. Ahora, nginx/apache y HHVM están instalados y ejecutándose de forma independiente, por lo que necesitamos configurar ambos servidores web para que se comuniquen entre sí. La parte crucial es que tenemos que decirle a nginx/apache que reenvíe todos los archivos PHP a HHVM para su ejecución.

Si está utilizando Nginx, siga estas instrucciones tal como se explican.

De forma predeterminada, la configuración de nginx se encuentra en /etc/nginx/sites-available/default y esta configuración busca en /usr/share/nginx/html los archivos para ejecutar. pero no sabe qué hacer con PHP.

Para hacer que Nginx hable con HHVM, necesitamos ejecutar el siguiente script de inclusión que configurará nginx correctamente colocando un hhvm.conf al comienzo de la configuración de nginx como se mencionó anteriormente.

Este script hace que nginx se comunique con cualquier archivo que termine con .hh o .php y lo envíe a HHVM a través de fastcgi.


/usr/share/hhvm/install_fastcgi.sh

Importante: si está utilizando Apache, no es necesaria ninguna configuración ahora.

8. A continuación, debe utilizar /usr/bin/hhvm para proporcionar /usr/bin/php (php) ejecutando este comando abajo.


/usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60

Una vez realizados todos los pasos anteriores, ahora puede iniciar HHVM y probarlo.


systemctl start hhvm

Paso 5: Probar HHVM con Nginx/Apache

9. Para verificar que hhvm funciona, necesita crear un archivo hello.php en el directorio raíz de documentos nginx/apache.


nano /usr/share/nginx/html/hello.php       [For Nginx]
OR
nano /var/www/html/hello.php               [For Nginx and Apache]

Agregue el siguiente fragmento a este archivo.


<?php
if (defined('HHVM_VERSION')) {
echo 'HHVM is working';
 phpinfo();
}
else {
echo 'HHVM is not working';
}
?>

y luego navegue a la siguiente URL y verifique "hola mundo".


http://localhost/info.php
OR
http://IP-Address/info.php

Si aparece la página “HHVM”, significa que ya está todo listo.

Conclusión

Estos pasos son muy fáciles de seguir y espero que este tutorial le resulte útil. Si recibe algún error durante la instalación de algún paquete, publique un comentario y encontraremos soluciones juntos. Y cualquier idea adicional es bienvenida.