GNU/Linux >> Linux Esercitazione >  >> Debian

Spiegazione di HHVM – Installa HHVM su Ubuntu 16.04 / Debian 8

HHVM (HipHop Virtual Machine) è una macchina virtuale open source progettata per eseguire programmi scritti in Hack e PHP. HHVM è sviluppato da Facebook e i suoi codici sorgente sono ospitati su Github; rilasciato secondo i termini della licenza PHP e Zend.

HHVM utilizza il principio della compilazione JIT (just-in-time) che aiuta a ottenere prestazioni superiori senza compromettere la flessibilità di sviluppo fornita da PHP. HHVM esegue codice PHP o Hack in un bytecode HipHop intermedio (HHBC) e quindi tradotto dinamicamente nel codice macchina x86_64.

HHVM può essere installato sulla maggior parte delle principali piattaforme Linux; anche un supporto sperimentale su Mac OS X 10.10 ed è in corso il lavoro per supportare il sistema operativo Windows.

HHVM offre i pacchetti predefiniti per i sistemi operativi Debian e Ubuntu.

Ubuntu 16.04 (Xenial)
Ubuntu 15.10 (Wily Werewolf)
Ubuntu 15.04 (Vivid)
Ubuntu 14.04 (Trusty)
Debian 8 (Jessie)
Debian 7 (Wheezy) )

Puoi anche creare dal codice sorgente per altre versioni di distribuzioni Linux.

Rilascio:

HHVM è attivamente sviluppato da Facebook e puoi ottenere una versione completa (versione stabile) ogni otto settimane. Ogni terza versione principale di HHVM è considerata una versione di supporto a lungo termine (LTS). LTS è supportato per quasi un anno ed è supportato con correzioni di bug critici e patch di sicurezza.

Se hai ancora domande, visita un post sul blog sulle versioni LTS.

Questa guida ti aiuta a configurare HHVM su Ubuntu 16.04 e Debian 8. Questa guida dovrebbe funzionare su versioni precedenti di Ubuntu come Ubuntu 15.10, Ubuntu 14.04 LTS, Ubuntu 15.04 e Debian 7.

Aggiungi repository HHVM:

Ora aggiungi un repository HHVM sulla tua macchina prima di procedere all'installazione.

Debian:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449echo deb http://dl.hhvm.com/debian $(lsb_release -sc) main | 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) main"
PS:per Ubuntu, sostituisci la variabile "$(lsb_release -sc)" con codname della tua distribuzione. Es.:xenial

Installa HHVM su Ubuntu 16.04 / Debian 8:

Aggiorna la cache del repository e passa all'installazione di HHVM, questo installerà l'ultima versione di HHVM sul tuo computer.

sudo apt-get aggiornamentiudo apt-get install -y hhvm

Verifica la versione HHVM.

$ php -vHipHop VM 3.15.0 (rel)Compiler:tags/HHVM-3.15.0-0-g92a682ebaa3c85b84857852d8621f528607fe27dRepo schema:225d4323575bbc8a498dc809a1c41354f6bca830Test HHVM: 

Puoi semplicemente invocare un comando per avviare HHVM. Puoi controllare il server HHVM usando argomenti extra con il comando "hhvm".

Creiamo un file PHP per soddisfare la richiesta tramite un browser web nella directory di lavoro corrente.

vi test.php

Inserisci i contenuti sottostanti nel file sopra.

Esegui il comando seguente.

hhvm -m server -p 8080

-m rappresenta la modalità e qui indica che HHVM è in esecuzione come modalità server HTTP
-p configura la porta TCP utilizzata da HHVM per ascoltare le richieste HTTP.

Scopri di più sulle modalità HHVM.

Naviga nel tuo browser web fino all'URL sottostante.

http://ip-add-re-ss:8080/test.php

Dovresti vedere la pagina sottostante che conferma che HHVM funziona correttamente.

Tipi di server:

Il tipo di server è classificato in base a come l'HHVM serve la pagina per la richiesta degli utenti; ha il supporto integrato per i tipi di server:Proxygen e FastCGI .

HHVM ProxyGen:

La modalità proxy è un server Web completo, integrato direttamente in HHVM. È molto facile da configurare e far funzionare e serve velocemente le richieste web. La modalità Porxygen fornisce un server Web ad alte prestazioni equivalente a FastCGI e Nginx.

Come ho già detto, i parametri di configurazione sono molto semplici e facili da impostare. Il file di configurazione principale di HHVM è /etc/hhvm/server.ini .

Modifica il file di configurazione come di seguito.

sudo vi /etc/hhvm/server.ini

Modifica le configurazioni HHVM in base alle tue esigenze.

; configura la porta TCP utilizzata da HHVM per ascoltare le richieste HTTP.hhvm.server.port =80; Configura il server HHVM typehhvm.server.type =proxygen; Configura il documento predefinito per la directoryhhvm.server.default_document =index.php; Abilitazione di Logshhvm.log.use_log_file =truehhvm.log.file =/var/log/hhvm/error.log; Configura il documento di errore per la directoryhhvm.server.error_document404 =index.php; Imposta la directory predefinita per il server web HHVM quando viene avviatohhvm.server.source_root=/var/www/public

Puoi eseguire questi comandi per impostare l'avvio di HHVM all'avvio e per avviarlo come servizio ora:

sudo update-rc.d hhvm defaultssudo service hhvm restart

Crea una directory /var/www/public che conterrà i documenti del tuo sito web.

sudo mkdir -p /var/www/public

Crea un file di prova per verificare che HHVM stia servendo le richieste web.

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

Incolla sotto i contenuti nel file sopra.

Accedi al server web HHVM tramite il browser che preferisci.

http://ip-add-re-ss

Otterresti la pagina PHPInfo dove puoi trovare tutte le informazioni su PHP.

HHVM FastCGI:

In questa modalità, HHVM si trova tra il tuo documento web (.php ) e server web (Apache o Nginx ). FastCGI fornisce prestazioni elevate nel servire velocemente le pagine web, è molto simile a PHP-FPM. HHVM è in ascolto su un socket TCP (localhost:9000 ) o un socket UNIX. Server web (Nginx o Apache ) ascolterà sulla porta 80 o 443 le richieste web.

Quando arriva una nuova richiesta, il server Web effettua una connessione a HHVM o riutilizza una delle connessioni precedentemente aperte, utilizzando HHVM FastCGI. Una volta stabilita la connessione, il server Web fornisce a HHVM informazioni come intestazioni della richiesta, corpo e percorso del file da eseguire. Ora, HHVM calcola le informazioni ricevute e le invia nuovamente al server Web utilizzando FastCGI. Infine, il server web invierà una risposta al cliente con i dati richiesti.

Apache:

Installa il server Apache sulla tua macchina usando il seguente comando.

sudo apt-get install -y apache2

L'esecuzione dei comandi seguenti imposterà Apache in modo che funzioni con HHVM per soddisfare le richieste Web.

sudo /usr/share/hhvm/install_fastcgi.sh

Per impostazione predefinita, Apache cercherà le pagine Web in /var/www/html directory per soddisfare le richieste, ma potrebbe non sapere come gestire .php File. Quindi dovresti dire ad Apache di prendere qualsiasi file che termina con .hh o .php e inviato a HHVM tramite fastCGI.

Modifica il file di configurazione seguente.

sudo vi /etc/apache2/mods-enabled/hhvm_proxy_fcgi.conf

Impostalo come di seguito.

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

Riavvia i servizi Apache e HHVM.

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

Nginx:

Installa Nginx sulla tua macchina usando il seguente comando.

sudo apt-get install -y nginx

L'esecuzione dei comandi seguenti imposterà Nginx per funzionare con HHVM per soddisfare la richiesta Web.

sudo /usr/share/hhvm/install_fastcgi.sh

Per impostazione predefinita, Nginx cercherà le pagine web in /usr/share/nginx/htm l (dipende dal sistema operativo) directory per soddisfare le richieste, ma potrebbe non sapere come gestire .php File. Quindi diresti a Nginx di prendere qualsiasi file che termina con .hh o .php e inviato a HHVM tramite fastCGI.

Modifica il file di configurazione seguente.

sudo vi /etc/nginx/sites-available/default

Modifica sotto la riga, aggiungi index.php alla riga dell'indice.

Da:

indice index.html index.htm;

A:

indice index.php index.html index.htm;

Riavvia i servizi Apache e HHVM.

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

Per testare il tipo FastCGI, crea/posiziona il file .php nelle directory predefinite.

Apache e Nginx Ubuntu 16.04, 15.04 / Debian 8:

$ sudo vi /var/www/html/index.php

Incolla sotto i contenuti nel file sopra.