Sådan installeres HHVM + Nginx på Ubuntu 14.04 LTS

HHVM er en virtuel maskine, der er oprettet af Facebook-ingeniører, den blev bygget til at understøtte høj trafik fra PHP-anmodninger til facebook-kravene. Det bruges til at udføre PHP og Hack apps. Hovedforskellen mellem HHVM PHP og andre PHP-servere er, at HHVM kompilerer PHP i maskinkode for hurtigere behandling.

Den eneste ulempe ved HHVM er det kræver mere RAM og CPU end andre PHP-motorer som PHP-FPM, men det giver mening, da det indeholder kompileringsarbejdet, der skal bruge flere ressourcer end andre løsninger. Anbefalet minimum hardware til HHVM skal være mindst 2 CPU og 1GB RAM med SSD-drev til produktionswebsteder.

Lad os starte med de sjove ting.

Installation af HHVM og Nginx på Ubuntu 14.04

Krav

  • Ubuntu 14.04 kører
  • Root adgang
  • 1GB RAM

Installation af Nginx

Bare for at være sikker, lad os stoppe apache, hvis det kører:

service apache2 stop

Lad os installere Nginx, tilføje den til at starte automatisk og starte tjenesten:

apt-get install nginx opdatering-rc.d nginx standard service nginx start

Installation af HHVM

Ubuntu 14.04 har allerede en officiel HHVM repo.
For at installere HHVM repo skal du importere GnuPG offentlige nøgler:

apt-key adv -recv-nøgler --keyserver hkp: //keyserver.ubuntu.com: 80 0x5a16e7281be7a449

Installer repo:

add-apt-repository "deb http://dl.hhvm.com/ubuntu $ (lsb_release -sc) main"

Opdater softwaredatabasen:

apt-get update

Installer HHVM og tilføj det til at starte automatisk:

apt-get installer hhvm update-rc.d hhvm defaults

Konfiguration af HHVM

HHVM kan integreres med Nginx på en meget nem måde med et standard script inkluderet i HHVM installation, det virker for de fleste standard Nginx installationer.

Advarsel: Denne HHVM-integration vil fungere på standard Nginx-installationer uden nogen forudgående PHP-FPM / FastCGI-konfiguration.

Kør denne kommando som root:

sh /usr/share/hhvm/install_fastcgi.sh

Hvad gør dette script præcist?

I grund og grund vil dette integration HHVM + Nginx integrationsskript tilføje standard hhvm.conf konfigurationsfilen (/etc/nginx/hhvm.conf) til standard Nginx-serverblokkonfigurationen, placeret på / etc / nginx / sites-enabled / default.

Hvad kan jeg gøre, hvis jeg allerede har ændret min Nginx eller tilføjet en FastCGI-konfiguration?

Så er løsningen at tilføje HHVM-konfiguration manuelt og erstatte din nuværende FastCGI-konfiguration.

Eksempel:

nano -w / etc / nginx / sites-enabled / default

Tilføj denne HHVM-konfiguration til PHP-behandling:

placering ~. (hh | php) $ {fastcgi_keep_conn on; fastcgi_pass 127.0.0.1: 9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; inkludere fastcgi_params; }

HHVM lytter som standard på port 9000 og giver dig mulighed for at analysere hack- og php-filer, som det fremgår af den Nginx-HHVM-konfiguration, vi tidligere brugte.

Genindlæs Nginx for at anvende ændringer:

service nginx genstart

HHVM hovedkonfigurationsfil

HHVM kan konfigureres ved at redigere filen server.ini:

nano -w /etc/hhvm/server.ini

Du skal se noget som dette:

; php muligheder pid = / var / run / hhvm / pid; hhvm specifik hhvm.server.port = 9000 hhvm.server.type = fastcgi hhvm.server.default_document = index.php hhvm.log.use_log_file = ægte hhvm.log.file = /var/log/hhvm/error.log hhvm. repo.central.path = /var/run/hhvm/hhvm.hhbc

Forklaring af hvert HHV-direktiv

hhvm.server.port = 9000

Dette er standardporten, hvor HHVM lytter på localhost, du kan ændre det som du har brug for. Hvis du skal ændre det for at lytte på en stikkontakt i stedet for systemport, skal du fjerne hhvm.server.port-variablen og tilføje denne nye:

hhvm.server.file_socket = / var / run / hhvm / hhvm.sock

Hvis du fjerner HHVM-porten og begynder at bruge stikkontakter, skal du også konfigurere fastcgi_pass-variablen placeret på /etc/nginx/hhvm.conf.

Eksempel:

nano -w /etc/nginx/hhvm.conf

Indstil fastcgi_pass som du ser nedenfor:

fastcgi_pass unix: /var/run/hhvm/hhvm.sock;

Gem filen og genindlæs Nginx:

service nginx genstart
hhvm.server.type = fastcgi

Sådan udføres HHVM-serveren, der er to typer: FastCGI og Proxygen. FastCGI er den, vi vælger at køre PHP separat fra webserveren. Proxygen på den anden side er en fuld webserver bygges inde i HHVM.

HHVM betragtes for miljøer under tung belastning, så den første konfigurationsændring du kan gøre er at få HHVM til at lytte til en stikkontakt i stedet for en TCP-port. Således vil kommunikationen mellem Nginx og HHVM kræve mindre CPU og hukommelse.

hhvm.server.default_document = index.php

Er standarddokumentet, der skal vises, hvis en side ikke er udtrykkeligt angivet.

hhvm.log.use_log_file = true

Aktiverer standardloggningsmekanismen via logfilen specificeret af hhvm.log.file

hhvm.log.file = /var/log/hhvm/error.log

Den angivne placering af HHVM-fejllogfilen.

hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc

Stien til filen hhvm.hhbc, der blev oprettet, da du udarbejdede et repo-autoritativt repo.
Efter konfiguration HHVM husk at genstarte for at anvende ændringer:

service hhvm genstart

Bemærk:

Hvis din index.php ikke fungerer korrekt efter installation af HHVM og Nginx, skal du huske at indstille dine indeks-standardfiler til at analysere index.php-filer først før nogen anden som index.htm.

nano -w / etc / nginx / sites-enabled / default

Og indstil indeksvariabel som du ser nedenfor:

indeks index.php index.html index.htm

Genindlæs Nginx for at anvende ændringer:

service nginx genstart

Testning af HHVM

Tjek om du kan se hhvm-versionen:

/ usr / bin / php - version

Output skal være sådan noget:

oooooooooooooooooooooooooooooooooooo

Hvis du ser output fra det gamle PHP, så kør follwing cmmand for at pege på din php binære til HHVM:

/ usr / bin / update-alternativer - installer / usr / bin / php php / usr / bin / hhvm 60

Opret en phpinfo-fil for at kontrollere, om Nginx kan analysere PHP-filer fra HHVM

nano -w /usr/share/nginx/html/info.php

Indsæt dette inde i den fil:

<? php phpinfo (); ?>

Endelig forsøge at gennemse http: //your.server.ip/info.php.

Hvis alt er ok, skal du se HHVM-oplysningerne:

Konklusion

Som vi har set i denne artikel, er HHVM en meget kraftfuld PHP-server, der kan udføre rigtig godt med hensyn til hastighed. Integrering af HHVM og Nginx er også en nem opgave for avancerede og nybegyndere. Husk imidlertid, at HHVM muligvis ikke er den mest egnede løsning til alle tilfælde, husk at på med lave hardware ressourcer med mindre end 1GB RAM og 2 CPU'er kan det være endnu langsommere end PHP-FPM-dæmon eller mod_php. Prøv det og lad os vide dine resultater.

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.