Opsætning af højtydende HHVM og Nginx/Apache med MariaDB på Debian/Ubuntu


HHVM står for HipHop Virtual Machine, er en open source virtuel maskine oprettet til at køre Hack (det er et programmeringssprog til HHVM) og PHP-skrevne applikationer. HHVM bruger en kompilationsvej til sidste øjeblik for at opnå bemærkelsesværdig ydeevne og samtidig holde den fleksibilitet, som PHP-programmører er afhængige af. Indtil dato har HHVM opnået over en 9x stigning i http-anmodningsgennemstrømning og mere end 5x nedskæring i hukommelsesudnyttelse (når den kører på lav systemhukommelse) til Facebook sammenlignet med PHP-motoren + APC (Alternativ PHP Cache).

HHVM kan også bruges sammen med en FastCGI-baseret webserver som Nginx eller Apache.

I denne vejledning skal vi se på trin til opsætning af Nginx/Apache-webserver, MariaDB-databaseserver og HHVM. Til denne opsætning bruger vi Ubuntu 15.04 (64-bit), da HHVM kun kører på 64-bit-system, selvom Debian og Linux Mint-distributioner også understøttes.

Trin 1: Installation af Nginx og Apache Web Server

1. Foretag først en systemopgradering for at opdatere lagerlisten ved hjælp af følgende kommandoer.

# apt-get update && apt-get upgrade

2. Som sagt kan HHVM bruges med både Nginx og Apache webserver. Så det er dit valg, hvilken webserver du vil bruge, men her viser vi dig installation af webservere, og hvordan du bruger dem med HHVM.

I dette trin installerer vi Nginx/Apache-webserveren fra pakkelageret ved hjælp af følgende kommando.

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

På dette tidspunkt skal du være i stand til at navigere til følgende URL, og du vil kunne se Nginx eller Apache-standardsiden.

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

Trin 2: Installer og konfigurer MariaDB

3. I dette trin installerer vi MariaDB, da det giver bedre ydeevne sammenlignet med MySQL.

# apt-get install mariadb-client mariadb-server

4. Efter vellykket installation af MariaDB kan du starte MariaDB og indstille root-adgangskode for at sikre databasen:

# systemctl start mysql
# mysql_secure_installation

Besvar følgende spørgsmål ved at skrive y eller n , og tryk på enter. Sørg for at læse instruktionerne omhyggeligt, inden du besvarer spørgsmålene.

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. Efter at have indstillet root-adgangskode til MariaDB, kan du oprette forbindelse til MariaDB-prompt med den nye root-adgangskode.

# mysql -u root -p

Trin 3: Installation af HHVM

6. På dette tidspunkt installerer og konfigurerer vi HHVM. Du skal tilføje HHVM-lageret til din sources.list -fil, og derefter skal du opdatere din lagerliste ved hjælp af følgende række kommandoer.

# 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

Vigtigt: Glem ikke at erstatte DISTRIBUTION_VERSION med din Ubuntu-distributionsversion (dvs. klar, præcis eller pålidelig.) Og også på Debian erstattes med jessie eller wheezy. På Linux Mint er installationsinstruktionerne de samme, men petra er den eneste nuværende understøttede distribution.

Efter tilføjelse af HHVM-lager kan du nemt installere det som vist.

# apt-get install -y hhvm

Installation af HHVM starter det nu, men det er ikke konfigureret til automatisk start ved næste systemstart. Brug følgende kommando til at indstille automatisk start ved næste opstart.

# update-rc.d hhvm defaults

Trin 4: Konfiguration af Nginx/Apache til at tale med HHVM

7. Nu er nginx/apache og HHVM installeret og kører som uafhængige, så vi er nødt til at konfigurere begge webservere til at tale med hinanden. Den afgørende del er, at vi skal fortælle nginx/apache at videresende alle PHP-filer til HHVM for at udføre.

Hvis du bruger Nginx, skal du følge denne vejledning som forklaret ..

Som standard lever nginx-konfigurationen under/etc/nginx/sites-available/default, og disse konfigurationer ser i/usr/share/nginx/html efter filer, der skal udføres, men det ved ikke, hvad de skal gøre med PHP.

For at få Nginx til at tale med HHVM skal vi køre følgende inkluderende script, der konfigurerer nginx korrekt ved at placere en hhvm.conf i begyndelsen af nginx-konfigurationen som nævnt ovenfor.

Dette script får nginx til at tale med enhver fil, der slutter med .hh eller .php og sende den til HHVM via fastcgi.

# /usr/share/hhvm/install_fastcgi.sh

Vigtigt: Hvis du bruger Apache, er der ikke behov for nogen konfiguration nu.

8. Dernæst skal du bruge/usr/bin/hhvm til at levere/usr/bin/php (php) ved at køre denne kommando nedenfor.

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

Når alle ovenstående trin er udført, kan du nu starte HHVM og teste det.

# systemctl start hhvm

Trin 5: Test af HHVM med Nginx/Apache

9. For at kontrollere, at hhvm fungerer, skal du oprette en hello.php-fil under nginx/apache-dokumentets rodmappe.

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

Føj følgende uddrag til denne fil.

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

og naviger derefter til følgende URL og bekræft for at se “hej verden”.

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

Hvis siden "HHVM" vises, betyder det, at du er klar!

Konklusion

Disse trin er meget lette at følge og håber, at du finder denne tutorial nyttig, og hvis du får fejl under installationen af pakker, skal du skrive en kommentar, så finder vi løsninger sammen. Og eventuelle yderligere ideer er velkomne.