Jak nainstalovat HHVM + Nginx na Ubuntu 14.04 LTS

HHVM je virtuální stroj vytvořený inženýry Facebooku, byl postaven tak, aby podporoval vysokou návštěvnost z požadavků PHP na požadavky na facebook. Používá se k provádění PHP a Hack aplikací. Hlavní rozdíl mezi HHVM PHP a dalšími PHP servery je fakt, že HHVM kompiluje PHP do strojového kódu pro rychlejší zpracování.

Jediná nevýhoda HHVM je to, že vyžaduje více paměti RAM a CPU než jiné PHP motory, jako je PHP-FPM, ale má smysl, protože zahrnuje kompilační práci, která by měla využívat více zdrojů než jiné řešení. Doporučený minimální hardware pro HHVM by měl být alespoň 2 CPU a 1GB RAM se jednotkami SSD pro produkční webové stránky.

Začněme s zábavnými věcmi.

Instalace HHVM a Nginx na Ubuntu 14.04

požadavky

  • Ubuntu 14.04 běží
  • Kořenový přístup
  • RAM 1GB

Instalace Nginx

Pro jistotu, zastavíme apache v případě, že je spuštěn:

servis apache2 zastavit

Nginx nainstalujeme, přidáme jej k automatickému spuštění a spustíme službu:

apt-get nainstalovat nginx update-rc.d nginx výchozí služba nginx start

Instalace HHVM

Ubuntu 14.04 již má oficiální repo HHVM.
Chcete-li nainstalovat repo HHVM, musíte importovat veřejné klíče GnuPG:

apt-key adv --recv-keys --keywordserver hkp: //keyserver.ubuntu.com: 80 0x5a16e7281be7a449

Nainstalujte repo:

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

Aktualizovat databázi softwaru:

apt-get update

Nainstalujte HHVM a přidejte jej k zavedení automaticky:

apt-get nainstalovat hhvm update-rc.d hhvm výchozí

Konfigurace HHVM

HHVM může být integrován s Nginx velmi snadným způsobem s výchozím skriptem zahrnutým v instalaci HHVM, funguje to pro většinu instalací Nginx.

Upozornění: tato integrace HHVM bude fungovat na výchozích instalacích Nginx bez předchozí konfigurace PHP-FPM / FastCGI.

Spusťte tento příkaz jako kořen:

sh /usr/share/hhvm/install_fastcgi.sh

Co dělá tento skript přesně?

V podstatě tento integrační skript HHVM + Nginx integruje výchozí konfigurační soubor hhvm.conf (/etc/nginx/hhvm.conf) do výchozí konfigurace bloku serverů Nginx, který je umístěn na / etc / nginx / sites-enabled / default.

Co mohu udělat, pokud jsem již upravil svůj Nginx nebo přidal konfiguraci FastCGI?

Pak je třeba přidat konfiguraci HHVM ručně a nahradit aktuální konfiguraci FastCGI.

Příklad:

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

Přidejte tuto konfiguraci HHVM pro zpracování PHP:

umístění ~. (hh | php) $ {fastcgi_keep_conn on; fastcgi_pass 127.0.0.1: 9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ dokument_root $ fastcgi_script_name; patří fastcgi_params; }}

Ve výchozím nastavení HHVM naslouchá portu 9000 a umožňuje analyzovat soubory hack a php, jak je uvedeno v konfiguraci Nginx-HHVM, kterou jsme použili dříve.

Znovu načíst Nginx pro změny:

restart služby nginx

Hlavní konfigurační soubor HHVM

HHVM lze konfigurovat úpravou souboru server.ini:

nano -w /etc/hhvm/server.ini

Měli byste vidět něco takového:

; php volby pid = / var / run / hhvm / pid; specifické hhvm hhvm.server.port = 9000 hhvm.server.type = fastcgi hhvm.server.default_document = index.php hhvm.log.use_log_file = true hhvm.log.file = /var/log/hhvm/error.log hhvm. repo.central.path = /var/run/hhvm/hhvm.hhbc

Vysvětlení každé směrnice HHV

hhvm.server.port = 9000

Toto je výchozí port, kde HHVM naslouchá na localhost, můžete jej změnit podle potřeby. Pokud potřebujete změnit, chcete-li poslouchat na soketu místo systémového portu, odstraňte proměnnou hhvm.server.port a přidejte novou:

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

Pokud odeberete port HHVM a začnete používat sokety, budete muset také nakonfigurovat proměnnou fastcgi_pass umístěnou na /etc/nginx/hhvm.conf.

Příklad:

nano -w /etc/nginx/hhvm.conf

Nastavte fastcgi_pass, jak vidíte níže:

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

Uložte soubor a znovu načtěte soubor Nginx:

restart služby nginx
hhvm.server.type = fastcgi

Takto je spuštěn server HHVM, existují dva typy: FastCGI a Proxygen. FastCGI je ten, který vybereme pro provozování PHP odděleně od webového serveru. Proxygen na druhé straně je plný webový server postavený uvnitř HHVM.

HHVM je považován za prostředí s těžkým zatížením, takže první konfigurační změna, kterou můžete udělat, je, aby HHVM naslouchala soketu místo portu TCP. Komunikace mezi Nginx a HHVM tedy bude vyžadovat menší procesor a paměť.

hhvm.server.default_document = index.php

Je výchozí dokument, který se zobrazí, pokud stránka není výslovně uvedena.

hhvm.log.use_log_file = true

Povoluje výchozí mechanismus protokolování prostřednictvím souboru protokolu určeného hhvm.log.file

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

Určené umístění souboru protokolu chyb HHVM.

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

Cesta k souboru hhvm.hhbc vznikla při kompilaci repo-autoritativního repo.
Po nakonfigurování HHVM nezapomeňte restartovat, abyste provedli změny:

servis hhvm restart

Poznámka:

Pokud váš index.php nefunguje správně po instalaci HHVM a Nginx, nezapomeňte nastavit výchozí soubory indexu pro analýzu souborů index.php nejprve před jakýmkoli jiným jako index.htm.

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

A nastavte proměnnou indexu, jak vidíte níže:

index.php index.html index.htm

Znovu načíst Nginx pro změny:

restart služby nginx

Testování HHVM

Zkontrolujte, zda uvidíte verzi hhvm:

/ usr / bin / php - verze

Výstup by měl být takový:

oooooooooooooooooooooooooooooooooooo

Pokud se podíváte na výstup ze starého PHP, pak spusťte následující příkaz cmmand a přesuňte své php binární na HHVM:

/ usr / bin / update-alternativy - instalace / usr / bin / php php / usr / bin / hhvm 60

Vytvořte soubor phpinfo a zkontrolujte, zda Nginx může analyzovat soubory PHP z HHVM

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

Vložit tento soubor uvnitř tohoto souboru:

<? php phpinfo (); ?>

Nakonec zkuste procházet http: //your.server.ip/info.php.

Pokud je vše v pořádku, měli byste vidět informace HHVM:

závěr

Jak jsme viděli v tomto článku, HHVM je velmi výkonný PHP server, který může fungovat opravdu dobře, pokud jde o rychlost. Integrace HHVM a Nginx je také snadný úkol pro pokročilé a začínající uživatele. Nezapomeňte však, že HHVM nemusí být nejvhodnějším řešením pro všechny případy, pamatujte si, že s nízkými hardwarovými prostředky s méně než 1GB paměti RAM a 2 CPU může být ještě pomalejší než démon PHP-FPM nebo mod_php. Zkuste to a dejte nám vědět výsledky.

Napsat komentář