Ricerca nel sito web

Configurazione di HHVM e Nginx/Apache ad alte prestazioni con MariaDB su Debian/Ubuntu


HHVM sta per HipHop Virtual Machine, è una macchina virtuale open source creata per eseguire Hack (è un linguaggio di programmazione per HHVM) e Applicazioni scritte in PHP. HHVM utilizza un percorso di compilazione dell'ultimo minuto per ottenere prestazioni straordinarie mantenendo la flessibilità da cui sono dipendenti i programmatori PHP. Fino ad oggi, HHVM ha ottenuto un aumento di oltre 9 volte nel throughput delle richieste http e una riduzione di oltre 5 volte nell'utilizzo della memoria (quando viene eseguito con poca memoria di sistema) per Facebook rispetto al motore PHP + APC (Alternative PHP Cache ).

HHVM può essere utilizzato anche insieme a un server web basato su FastCGI come Nginx o Apache.

In questo tutorial esamineremo i passaggi per configurare il server web Nginx/Apache, il server database MariaDB e HHVM . Per questa configurazione, utilizzeremo Ubuntu 15.04 (64 bit) poiché HHVM funziona solo su sistemi a 64 bit, sebbene siano supportate anche le distribuzioni Debian e Linux Mint.

Passaggio 1: installazione di Nginx e del server Web Apache

1. Innanzitutto esegui un aggiornamento del sistema per aggiornare l'elenco dei repository con l'aiuto dei seguenti comandi.


apt-get update && apt-get upgrade

2. Come ho detto, HHVM può essere utilizzato sia con il server web Nginx che Apache. Quindi, sta a te scegliere quale server web utilizzerai, ma qui ti mostreremo l'installazione di entrambi i server web e come usarli con HHVM.

Installazione di Nginx

In questo passaggio, installeremo il server web Nginx/Apache dal repository dei pacchetti utilizzando il seguente comando.


apt-get install nginx

Installazione di Apache


apt-get install apache2

A questo punto, dovresti essere in grado di accedere al seguente URL e potrai vedere la pagina predefinita Nginx o Apache.


http://localhost
OR
http://IP-Address
Pagina predefinita di Nginx

Pagina predefinita di Apache

Passaggio 2: installa e configura MariaDB

3. In questo passaggio installeremo MariaDB, poiché fornisce prestazioni migliori rispetto a MySQL.


apt-get install mariadb-client mariadb-server

4. Dopo aver installato con successo MariaDB, puoi avviare MariaDB e impostare la password di root per proteggere il database:


systemctl start mysql
mysql_secure_installation

Rispondi alle seguenti domande digitando y o n e premi invio. Assicurati di leggere attentamente le istruzioni prima di rispondere alle domande.


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. Dopo aver impostato la password di root per MariaDB, puoi connetterti al prompt di MariaDB con la nuova password di root.


mysql -u root -p

Passaggio 3: installazione di HHVM

6. In questa fase installeremo e configureremo HHVM. Devi aggiungere il repository HHVM al tuo file sources.list e quindi devi aggiornare l'elenco dei repository utilizzando la seguente serie di comandi.


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: non dimenticare di sostituire DISTRIBUTION_VERSION con la versione della tua distribuzione Ubuntu (ovvero lucida, precisa o affidabile .) e anche su Debian sostituisci con jessie o wheezy. Su Linux Mint le istruzioni di installazione sono le stesse, ma petra è l'unica distribuzione attualmente supportata.

Dopo aver aggiunto il repository HHVM, puoi installarlo facilmente come mostrato.


apt-get install -y hhvm

L'installazione di HHVM lo avvierà ora, ma non sarà configurato per l'avvio automatico al successivo avvio del sistema. Per impostare l'avvio automatico al prossimo avvio utilizzare il comando seguente.


update-rc.d hhvm defaults

Passaggio 4: configurazione di Nginx/Apache per comunicare con HHVM

7. Ora, nginx/apache e HHVM sono installati e funzionano come indipendenti, quindi dobbiamo configurare entrambi i server Web per comunicare tra loro. La parte cruciale è che dobbiamo dire a nginx/apache di inoltrare tutti i file PHP a HHVM per l'esecuzione.

Se utilizzi Nginx, segui queste istruzioni come spiegato.

Per impostazione predefinita, la configurazione di nginx si trova in /etc/nginx/sites-available/default e questa configurazione cerca in /usr/share/nginx/html i file da eseguire, ma non sa cosa fare con PHP.

Per fare in modo che Nginx comunichi con HHVM, dobbiamo eseguire il seguente script di inclusione che configurerà nginx correttamente inserendo un hhvm.conf all'inizio della configurazione di nginx come menzionato sopra.

Questo script fa sì che nginx parli con qualsiasi file che termina con .hh o .php e lo invii a HHVM tramite fastcgi.


/usr/share/hhvm/install_fastcgi.sh

Importante: se stai utilizzando Apache, non è necessaria alcuna configurazione ora.

8. Successivamente, devi utilizzare /usr/bin/hhvm per fornire /usr/bin/php (php) eseguendo questo comando sotto.


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

Dopo aver eseguito tutti i passaggi precedenti, ora puoi avviare HHVM e testarlo.


systemctl start hhvm

Passaggio 5: testare HHVM con Nginx/Apache

9. Per verificare che hhvm funzioni, è necessario creare un file hello.php nella directory root dei documenti nginx/apache.


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

Aggiungi il seguente snippet a questo file.


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

quindi vai al seguente URL e verifica per vedere "ciao mondo".


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

Se viene visualizzata la pagina "HHVM", significa che è tutto pronto!

Conclusione

Questi passaggi sono molto facili da seguire e spero che tu trovi utile questo tutorial e se ricevi qualche errore durante l'installazione di qualsiasi pacchetto, pubblica un commento e troveremo le soluzioni insieme. E qualsiasi idea aggiuntiva è benvenuta.