Nastavitev visoko zmogljivih HHVM in Nginx/Apache z MariaDB v Debian/Ubuntu


HHVM je kratica za HipHop Virtual Machine, je odprtokodni navidezni stroj, ustvarjen za zagon programa Hack (to je programski jezik za HHVM) in PHP pisnih aplikacij. HHVM uporablja lastno pot prevajanja, da doseže izjemno zmogljivost, hkrati pa ohranja prilagodljivost, s katero so zasvojeni programerji PHP. Do danes je HHVM dosegel več kot 9-kratno povečanje pretočnosti http zahtev in več kot 5-kratno zmanjšanje izkoriščenosti pomnilnika (kadar deluje na pomanjkljivem sistemskem pomnilniku) za Facebook v primerjavi s PHP motorjem + APC (alternativni predpomnilnik PHP).

HHVM se lahko uporablja tudi skupaj s spletnim strežnikom, ki temelji na FastCGI, kot sta Nginx ali Apache.

V tej vadnici si bomo ogledali korake za nastavitev spletnega strežnika Nginx/Apache, strežnika baz podatkov MariaDB in HHVM. Za to nastavitev bomo uporabili Ubuntu 15.04 (64-bitno), saj HHVM deluje samo na 64-bitnem sistemu, čeprav sta podprti tudi distribuciji Debian in Linux Mint.

1. korak: Namestitev spletnega strežnika Nginx in Apache

1. Najprej s pomočjo naslednjih ukazov nadgradite sistem, da posodobite seznam skladišč.

# apt-get update && apt-get upgrade

2. Kot sem že dejal, se HHVM lahko uporablja tako s spletnim strežnikom Nginx kot Apache. Torej, vaša izbira je, kateri spletni strežnik boste uporabljali, tukaj pa vam bomo pokazali namestitev obeh spletnih strežnikov in kako jih uporabljati s HHVM.

V tem koraku bomo iz repozitorija paketov namestili spletni strežnik Nginx/Apache z naslednjim ukazom.

# apt-get install nginx
# apt-get install apache2

Na tej točki bi morali imeti možnost, da se pomaknete na naslednji URL in videli boste privzeto stran Nginx ali Apache.

http://localhost
OR
http://IP-Address

2. korak: Namestite in konfigurirajte MariaDB

3. V tem koraku bomo namestili MariaDB, saj ponuja boljše rezultate v primerjavi z MySQL.

# apt-get install mariadb-client mariadb-server

4. Po uspešni namestitvi MariaDB lahko zaženete MariaDB in nastavite korensko geslo za zaščito baze podatkov:

# systemctl start mysql
# mysql_secure_installation

Na naslednja vprašanja odgovorite tako, da vnesete y ali n in pritisnete enter. Preden odgovorite na vprašanja, natančno preberite navodila.

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. Po nastavitvi korenskega gesla za MariaDB se lahko na poziv MariaDB povežete z novim korenskim geslom.

# mysql -u root -p

3. korak: Namestitev HHVM

6. Na tej stopnji bomo namestili in konfigurirali HHVM. V datoteko sources.list morate dodati repozitorij HHVM, nato pa morate svoj seznam repozitorijev posodobiti z naslednjo serijo ukazov.

# 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

Pomembno: Ne pozabite zamenjati DISTRIBUTION_VERSION z vašo različico distribucije Ubuntu (tj. Lucidno, natančno ali zanesljivo.) In tudi z Debianom, da jo zamenjate z jessie ali piskajočim. V Linux Mint so navodila za namestitev enaka, vendar je petra trenutno edina podprta distribucija.

Po dodajanju repozitorija HHVM ga lahko enostavno namestite, kot je prikazano.

# apt-get install -y hhvm

Namestitev HHVM ga bo zagnala zdaj, vendar ni nastavljen za samodejni zagon ob naslednjem zagonu sistema. Če želite nastaviti samodejni zagon ob naslednjem zagonu, uporabite naslednji ukaz.

# update-rc.d hhvm defaults

4. korak: Konfiguriranje Nginx/Apache za pogovor s HHVM

7. Zdaj sta nginx/apache in HHVM nameščena in delujeta neodvisno, zato moramo oba spletna strežnika konfigurirati za medsebojni pogovor. Ključni del je, da moramo nginxu/apacheu sporočiti, naj vse datoteke PHP posreduje HHVM, da se izvede.

Če uporabljate Nginx, sledite tem navodilom, kot je opisano.

Konfiguracija nginxa privzeto živi pod/etc/nginx/sites-available/default in ta konfiguracija išče datoteke/usr/share/nginx/html za izvedbo datotek, vendar ne ve, kaj storiti s PHP.

Če želite, da se Nginx pogovarja s HHVM, moramo zagnati naslednji skript za vključitev, ki bo pravilno konfiguriral nginx tako, da bo na začetek konfiguracije nginx, kot je navedeno zgoraj, postavil hhvm.conf.

Ta skript omogoča, da nginx govori s katero koli datoteko, ki se konča z .hh ali .php, in jo pošlje HHVM prek fastcgi.

# /usr/share/hhvm/install_fastcgi.sh

Pomembno: Če uporabljate Apache, zdaj ni potrebna nobena konfiguracija.

8. Nato morate uporabiti/usr/bin/hhvm, da zagotovite/usr/bin/php (php), tako da zaženete spodnji ukaz.

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

Po končanih vseh zgornjih korakih lahko zdaj zaženete HHVM in ga preizkusite.

# systemctl start hhvm

5. korak: Testiranje HHVM z Nginx/Apache

9. Če želite preveriti, ali hhvm deluje, morate v korenskem imeniku dokumenta nginx/apache ustvariti datoteko hello.php.

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

V to datoteko dodajte naslednji delček.

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

in nato se pomaknite do naslednjega URL-ja in preverite, da vidite "zdravo svet".

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

Če se prikaže stran »HHVM«, to pomeni, da ste pripravljeni!

Zaključek

Tem korakom je zelo enostavno slediti in upamo, da se vam bo ta vadnica zdela koristna. Če pride do napake med namestitvijo katerega koli paketa, objavite komentar in skupaj bomo našli rešitve. In vse dodatne ideje so dobrodošle.