Minu esialgsel VPS -il (virtuaalne privaatserver) oli ainult 512M RAM, 1 tuum ja 10G HDD. Hiljem täiendasin mälu tühjenemise tõttu 2-tuumalisele, 1G RAM-ile ja 20G HDD-le. Paar päeva tagasi aga liiklus kasvab (suurem osa neist on robotitelt ), VPS sai vaevu hakkama ja seetõttu uuendasin uuesti 3 tuuma ja 2GB RAM-i peale.
VPS-i PHP versioon on 5.5 ja seega on sellel sisseehitatud kiirendi OpCache, mis salvestab PHP opkoodi vahemällu. Opcache võetakse kasutusele, et asendada APC (Another PHP Cache), mis on avatud lähtekoodiga projekt, mida kasutatakse peamiselt PHP koodi kiirendamiseks enne versiooni 5.4.x või varasemaid versioone. HHVM töötab sarnaselt . See kompileerib PHP-koodi esmalt komplektiks ja seejärel käivitatakse koostekood, kui see leitakse ja endiselt kehtib, ilma sama PHP-koodi uuesti tõlgendamata. See idee on väga sarnane .NET-platvormiga, kus .NET-i keeled, nagu C#, tõlgitakse ja kompileeritakse käitusajal (JIT = Just In Time) kompilaatoris. Seetõttu töötavad .NET-i rakendused alguses aeglaselt, kuid kipuvad hiljem kiirenema, kuna need kompileeritakse käitusajal algkoodiks ja salvestatakse vahemällu.
Muidugi on ka muid uusi funktsioone. Uus keel [Hack] põhineb PHP-l. Teame, et PHP keel on lõdvalt tüüpi keel, mis tähendab, et te ei pea ühegi muutuja jaoks tüüpi määrama (tegelikult ei saa seda selgesõnaliselt teha). Tüüpe kasutatakse siis, kui see on vajalik. Häkkimiskeel on järkjärguline tüüp, mis tähendab, et esimest korda tüübi määratlemisel ei saa tüüpi muuta. See aitab edendada tugevat koodi ja parandab arenduse tõhusust. See on pigem suur teema, mida tuleks eraldi postituses tutvustada.
HHVM-i installimine Linuxile (minu puhul Ubuntule) on üsna lihtne.
root@uploadbeta:/var/www/helloacm.com/htdocs/hhvm# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
Võite alla laadida eelnevalt kompileeritud binaarfailid või lähtekoodi ja kompileerida selle kohapeal. Järgmised installid eelkompileeritud binaarhoidlast.
wget -O -
Seejärel saate apache- või ngix-serveri konfigureerimiseks käivitada järgmise käsu.
/usr/share/hhvm/install_fastcgi.sh
Tegelikult saate pärast hhvmi installimist kasutada seda käsureal PHP lähtekoodi käivitamiseks, näiteks järgmiselt:
hhvm hello-world.php
HHVM käsurea parameetrid
Saame Apache serveri ajutiselt keelata:
sudo service apache2 stop
Ja käivitage hhvm-server, kuulates pordi 80 kaudu (nii et peate peatama teised serverid, mis kuulavad sama porti):
hhvm -m server
Seejärel saate brauseris testida PHP koodi, mis edastatakse HHVM serverile.
Kui pärast installimist ja seadistamist ilmneb tõrge 404 ei leitud, peate tõenäoliselt lisama faili /etc/hhvm/server.ini järgmise rea
hhvm.server.fix_path_info = true
Ja taaskäivitage hhvm, kasutades sudo teenust hhvm restart.
Olen serverit mõnda aega testinud ja jälginud ning ausalt öeldes ei näinud mingit vahet ilmselt märkamatu liikluse tõttu. Käsuga htop loetletud protsessid aga muutusid apache2 -k start asemel hhvm -iks
Samuti saame luua järgmise sisuga PHP-faili ja testida, kas HHVM brauseris töötab:
WordPressi saite saab kasutada HHVM-iga, kuid näib, et HHVM ei toeta GB2312 kodeeringut (ja võib-olla ka teisi), kuna see ajab tähemärkidega sassi. Fotogalerii PHP kood näitas HHVM -i kasutades tühja lehte ja ma pole siiani põhjust välja selgitanud.
Otsustasin siiski HHVM-ist lahti saada, praegune pakett: Apache2 + PHP5.5 + Mysql töötab päris hästi. Võib-olla toon tulevikus HHVM-i tagasi, kui VPS kogeb taas tohutut liiklust.
sudo service hhvm stop
sudo apt-get remove hhvm
Peame pärast HHVM-i desinstallimist taastama apache2 sätted.
sudo a2dismod proxy_fcgi
sudo a2dismod proxy
rm /etc/apache2/mods-enable/hhvm*.conf
sudo service apache2 restart