HHVM, står for HipHop Virtual Machine, er en åpen kildekode virtuell maskin utviklet av Facebook utviklingsteam. Den er designet for å gjennomføre massive mengden av koder skrevet på Hack og PHP språk. HHVM gir overlegen ytelse, og forbedrer effektiviteten i PHP gjennomføring, og øker produktiviteten for utviklerne. Utviklerne sier at sammenlignet med den vanlige Zend PHP 5.2 motor + APC, har HHVM realiseres over en 9x økning i webforespørsel gjennomstrømning og over en 5x reduksjon i minneforbruk for Facebook. Dette er hvordan Facebook håndterer millioner av aktive brukere hver dag. Ifølge denne bloggen, wordpress nettstedene kjører med HHVM leverer bedre ytelse, ca 63%, enn nettsteder som kjører med tradisjonell LAMP-stakken (Apache, MySQL og PHP). Høres fantastisk? !. Faktisk HHVM
vil fungere på alle moderne operativsystemer som GNU /Linux, Windows og Mac OS
HHVM har mange funksjoner, inkludert følgende:
The Hack Språk;
< li> JIT Compilation;
HNI;
FastCGI støtte;
Økende PHP5 Paritet;
hphpd debugger;
... og mer .
Vel, la oss se hvordan du installerer den på en Linux-system.
Installere HHVM På Ubuntu 14.04
Kjør følgende kommandoer for å legge HHVM depotet, og installere hhvm pakken.
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -echo deb http://dl.hhvm.com/ubuntu~~V trofaste hoved | sudo tee /etc/apt/sources.list.d/hhvm.listsudo apt-get updatesudo apt-get install hhvmFor andre distribusjonsinstallasjonsinstruks, se den offisielle siden gitt i bunnen av denne artikkelen.
< p> Når installasjonen er ferdig, kan du få følgende resultat.
I min Ubuntu 14.04 server, fikk jeg følgende resultat.
[...] * HHVM er installert. * * Kjører PHP web-skript med HHVM gjøres ved å ha din webserver snakke med HHVM * løpet FastCGI. Installer Nginx eller Apache, og deretter: * $ sudo /usr/share/hhvm/install_fastcgi.sh* $ sudo /etc/init.d/hhvm restart * (hvis du bruker nginx) $ sudo /etc/init.d/nginx restart * (hvis du bruker Apache) $ sudo /etc/init.d/apache starte * * Detaljert FastCGI retninger er online på: * https://github.com/facebook/hhvm/wiki/FastCGI* * Hvis du bruker HHVM å kjøre web-skript, har du sannsynligvis vil den skal starte ved oppstart: * $ sudo update-rc.d hhvm mislighold * * Kjører kommandolinje skript med HHVM krever ingen spesielle oppsett: * $ hhvm whatever.php * * Du kan bruke HHVM for /usr /bin /php selv om du har php-cli installert: * $ sudo /usr /bin /update-alternativer --install /usr /bin /php php /usr /bin /hhvm 60 ****** ************************************************** ************ Sette opp libpaper-utils (1.1.24 + nmu2ubuntu3) ... Processing triggere for libc-bin (2.19-0ubuntu6.1) ...Som du ser i ovennevnte resultat, HHVM gir oss script for å installere og konfigurere FastCGI for vår webserver
For eksempel, hvis du bruker Apache web server, og deretter kjøre følgende kommandoer:.
sudo /usr /share /hhvm /install_fastcgi.shsudo /etc/init.d/hhvm restartsudo /etc/init.d/apache restartFor nginx nettserver, kjører du følgende kommandoer:
sudo /usr /share /hhvm /install_fastcgi.shsudo /etc/init.d/hhvm restartsudo /etc/init.d/nginx restartHvis du ønsker å starte hhvm tjenesten automatisk på gang starter, kjører du følgende kommando:
sudo update-rc.d hhvm misligholdNå sjekke om HHVM er riktig installert ved å kjøre følgende kommando.
hhvm -aOops! Du kan få følgende feilmelding
hhvm. Feil under lasting delte biblioteker: libgmp.so.10: kan ikke åpne delte objekt fil: Ingen slik fil eller katalogFor å reparere denne feilen, installere den manglende avhengighet pakke "libgmp10" ved å skrive inn følgende kommando:
sudo apt-get install libgmp10Start deretter hhvm tjeneste:
sudo tjenesten hhvm restartDu bør være i stand til å se omtrent slik ut:
hhvm -aWelcome å HipHop Debugger Type "hjelp" eller "?" for en fullstendig liste over commands.Note: ingen server spesifisert, debugging lokale scripts only.If du vil koble til en server, starte med "h" eller bruk: [m] achine [c] onnect < server > hphpd > Type slutte å returnere tilbake til Terminal sesjon
følgende kommando viser deg hvordan du bruker hhvm
hhvm --helpSample utgang:
Bruk:.. Hhvm [-m < modus >] [< alternativer >] [< arg1 >] [< arg2 >] ... Alternativer: Hjelpe vise denne meldingen --version skjerm versjonsnummeret --php emulere standard php kommandolinje --compiler- id vise git hash for kompilatoren --repo-schema vise depotet skjemaet id -m [--mode] arg (= løp) kjøres | debug (d) | server (s) | daemon | replay | sette (t) -a [--interactive] Snarvei for --mode debug -c [--config] arg belastning spesifisert konfigurasjonsfil -V [--config-verdi] arg individuell konfigurasjon streng i et format på navn = verdi, der navnet kan være noen gyldig konfigurasjon for en config fil -d [--define] arg definere en ini-innstilling i samme format (foo [= bar]) som forutsatt i en ini-fil --no-config ikke bruk standard php.ini -p [--port] arg (= -1) starte en HTTP-server på angitt port --port-fd arg (= -1) Bruk fore fd stedet for å opprette en socket --ssl-porte- fd arg (= -1) bruker spesifisert fd for SSL stedet for å opprette en socket --admin-port arg (= -1) starter admin lytteren på angitt port --debug-config arg belastning spesifisert debugger config fil -h [- debug-host] [= arg (= localhost)] koble til debugger server på angitte adressen --debug-port arg (= -1) koble til debugger serveren på angitt port forlengelse --debug-arg PHP-fil som strekker seg kommandoen "arg '--debug-cmd arg utfører dette debugger kommando og returnerer sin produksjon i stdout --debug-sandbox arg (= standard) innledende sandkasse å feste til når debugger startes -u [--user] arg kjøre serveren under denne brukerkontoen -f [file] arg utføre angitte filen -l [--lint] arg lo angitte filen -w [--show] arg utgang angitte filen og gjøre ingenting annet --temp-fil angitte filen er midlertidig og fjernet etter henrettelsen count arg (= 1) hvor mange ganger for å gjenta utførelsen --no-safe-access-check arg (= 0) om å ignorere trygg filtilgang sjekk --arg arg argumenter --extra-header arg ekstra header til legge logge linjer --build-id arg unik identifikator for kompilert serverkoden --instance-id arg unik identifikator for tjenerforekomsten --xhprof-flagg arg (= 0) Set XHProf flagsTesting PHP-skript som bruker HHVM
La oss skape en prøve php skreppe kalt "unixmen.php"
vi unixmen.phpAdd følgende linjer:
< phpecho "HHVM arbeider \\ n"; Lagre og lukk.? . fil
Kjør følgende kommando for å teste skriptet
hhvm unixmen.phpSample utgang.
HHVM er workingConfiguring HHVM i FastCGI modus med Apache webserver
Per versjon 3.0 støtter HHVM ikke lenger den innebygde webserver, bør du bruke din egen webserver (nginx eller apache) snakker med HHVM løpet FastCGI.
Først installerer Apache web server i Ubuntu server som vist nedenfor.
sudo apt-get install apache2 -yTo sjekke om apache fungerer, åpne nettleseren, og gå til http: //ip-adresse. Du kan se følgende lignende skjerm.
Nå, skriv følgende kommandoer for å konfigurere HHVM i FastCGI modus med Apache webserver.
sudo /usr/share/hhvm/install_fastcgi.shsudo /etc /init.d /hhvm restartHHVM vil konfigureres automatisk for apache server, slik at du ikke trenger å gjøre noe. Du kan legge merke til at php.ini, og server.ini filer har blitt opprettet automatisk under katalogen /etc /hhvm /
sudo cat /etc/hhvm/php.iniSample utgang.
; php alternativer; hhvm bestemt hhvm.log.level = Warninghhvm.log.always_log_unhandled_exceptions = truehhvm.log.runtime_error_reporting_level = 8191hhvm.mysql.typed_results = falsesudo cat /etc/hhvm/server.iniSample utgang:
; php optionspid = /var /run /hhvm /pid; hhvm bestemt hhvm.server.port = 9000hhvm.server.type = fastcgihhvm.server.default_document = index.phphhvm.log.use_log_file = truehhvm.log.file = /var/log/hhvm/error.loghhvm.repo.central.path = /var/run/hhvm/hhvm.hhbcConfiguring HHVM i FastCGI modus med nginx webserver
Installer nginx pakken:
sudo apt-get install nginxTo sjekke om nginx serveren fungerer, åpner opp nettleser, og gå til http: //ip-adresse. Du kan se følgende lignende skjerm.
Nå, skriv følgende kommandoer for å konfigurere HHVM i FastCGI modus med nginx nettserver.
sudo /usr/share/hhvm/install_fastcgi.shsudo /etc /init.d /hhvm restartHHVM vil konfigureres automatisk for nginx. Du kan se hhvm.conf blir automatisk opprettet
La oss sjekke innholdet i hhvm.conf fil
sudo cat /etc/nginx/hhvm.confSample utgang:..
beliggenhet ~ \\ (hh | php) $ {fastcgi_keep_conn på.; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ DOCUMENT_ROOT $ fastcgi_script_name; inkluderer fastcgi_params;} Hvis du har brukt php-fpm før, vil de ovennevnte linjer ser kjent ut for deg
Sjekk også /etc /nginx /sites-available /default fil for å verifisere om dette hhvm.conf har vært inkludert..
sudo cat /etc /nginx /sites-available /defaultSample utgangs:
Bla ned til serveren derivat. Du bør filen hhvm.conf har vært inkludert allerede
[...] server {lytte 80 default_server.; lytte [::]: 80 default_server ipv6only = på; root /usr /share /nginx /html; index index.html index.htm; # Gjøre nettstedet tilgjengelig fra http: //localhost /tjenerlocalhost; inkluderer hhvm.conf; [...] Det var det. ! Cheers
Source & Referanse link:
HHVM Nettstedet