HHVM , o HipHop Virtual Machine , è una macchina virtuale per PHP sviluppata da Facebook per migliorare le prestazioni delle applicazioni PHP. A differenza del normale runtime PHP, HHVM utilizza un compilatore just-in-time per convertire gli script in codice macchina nativo. Di conseguenza, i benchmark di terze parti hanno mostrato una riduzione del tempo di caricamento 3x rispetto a PHP-FPM 5.4 per attività come il caricamento di un normale sito Web Drupal.
Una parola di avvertimento
Anche se molto veloce, HHVM è ancora in fase di sviluppo e potrebbe non eseguire correttamente alcuni software o potrebbe non supportare alcune estensioni necessarie. Procedi con cautela. Per un elenco di estensioni PHP integrate e supportate, segui questo link .
Distribuzioni supportate
- Ubuntu
- 10.04 (lucido)
- 12.04 (preciso)
- 14.04 (fidato)
- Debian
- menta
Queste sono le distribuzioni supportate da Facebook e dai manutentori di HHVM e le distribuzioni che sono ancora attivamente gestite per i server. Sebbene sia possibile installare HHVM su un server Ubuntu 14.10, farlo non è supportato (al momento della scrittura) da HHVM e potrebbe causare eventi negativi.
Requisiti
- Una delle distribuzioni sopra.
- Accesso root per i pacchetti di installazione della configurazione.
Installazione di HHVM
L'installazione di HHVM è rapida e indolore, non richiede molto di più della configurazione dei repository e dell'installazione.
Ubuntu
Solo per utenti lucidi (10.04) e precisi (12.04): entrambe le versioni di Ubuntu richiedono l'aggiunta di repository. Per semplificare il processo, dobbiamo assicurarci che il add-apt-repositorycomando sia pronto. Se non si utilizza lucido o preciso, saltare questo set di comandi. Altrimenti:
sudo apt-get update
sudo apt-get install python-software-properties
Solo per utenti lucidi (10.04): HHVM ha alcune dipendenze in più che non sono incluse nel sistema di base o nei repository.
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8 g++-4.8 gcc-4.8-base
Solo per utenti precisi (12.04): dovrai anche aggiungere un repository per ottenere le librerie necessarie per eseguire HHVM.
sudo add-apt-repository ppa:mapnik/boost
HHVM richiede anche l'installazione di una chiave GPG per il suo repository.
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
Una volta fatto, possiamo aggiungere il repository HHVM a un sources.listfile.
echo deb http://dl.hhvm.com/ubuntu DISTRIBUTION_VERSION main | sudo tee /etc/apt/sources.list.d/hhvm.list
Assicurati di sostituire DISTRIBUTION_VERSIONcon il nome in codice della tua versione di Ubuntu: lucido, preciso o affidabile.
Ora possiamo installare.
sudo apt-get update
sudo apt-get install hhvm
E abbiamo finito!
Debian
L'installazione HHVM su Debian è simile a Ubuntu, ma meno frammentata tra le distribuzioni. Avrai bisogno di un solo set di comandi per jessie o wheezy.
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
echo deb http://dl.hhvm.com/debian DISTRIBUTION_VERSION main | sudo tee /etc/apt/sources.list.d/hhvm.list
sudo apt-get update
sudo apt-get install hhvm
Assicurati di sostituire DISTRIBUTION_VERSIONsulla seconda riga con il nome in codice della tua versione Debian, jessie o wheezy. HHVM ora dovrebbe essere installato.
menta
Anche l'installazione di Mint è molto simile a Debian in quanto è semplificata.
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
echo deb http://dl.hhvm.com/mint petra main | sudo tee /etc/apt/sources.list.d/hhvm.list
sudo apt-get update
sudo apt-get install hhvm
Dal momento che PETRA è l'unica distribuzione Mint supportata al momento, tutto qui!
Configurazione con Apache / Nginx
Con HHVM arriva un elegante script di configurazione che imposta automaticamente un gestore CGI per entrambi i server.
Se si utilizza Nginx, assicurarsi di modificare il file di configurazione del server (per impostazione predefinita /etc/nginx/sites-available/default) per disabilitare l'elaborazione FastCGI. Cerca una sezione come la seguente e assicurati che non esista o sia completamente commentata (aggiungendo #all'inizio di ogni riga nella sezione):
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
# fastcgi_pass unix:/var/run/php5-fpm.sock;
# fastcgi_index index.php;
# include fastcgi_params;
#}
Se stai usando Apache, non c'è nulla di specifico da fare.
Successivamente, esegui semplicemente il seguente script.
sudo /usr/share/hhvm/install_fastcgi.sh
Test di HHVM
Apache o Nginx dovrebbero essere automaticamente configurati e riavviati e ora HHVM dovrebbe essere in esecuzione sul tuo server. Per provarlo, puoi creare un file come questo:
<?php phpinfo();
E cerca "HipHop" o "HHVM", oppure puoi eseguire uno script come questo:
<?php if(defined('HHVM_VERSION')) { echo 'HHVM works!'; }
Se "HHVM funziona!" appare, allora sei pronto!