GNU/Linux >> LINUX-Kenntnisse >  >> Debian

HHVM erklärt – Installieren Sie HHVM auf Ubuntu 16.04 / Debian 8

HHVM (HipHop Virtual Machine) ist eine virtuelle Open-Source-Maschine, die zum Ausführen von Programmen entwickelt wurde, die in Hack und PHP geschrieben wurden. HHVM wird von Facebook entwickelt und seine Quellcodes werden auf Github gehostet; veröffentlicht unter den Bedingungen der PHP- und Zend-Lizenz.

HHVM verwendet das Prinzip der JIT-Kompilierung (Just-in-Time), die dazu beiträgt, eine überlegene Leistung zu erzielen, ohne die Entwicklungsflexibilität zu beeinträchtigen, die PHP bietet. HHVM führt PHP- oder Hack-Code in HipHop-Zwischenbytecode (HHBC) aus und übersetzt ihn dann dynamisch in den x86_64-Maschinencode.

HHVM kann auf den meisten großen Linux-Plattformen installiert werden; auch eine experimentelle Unterstützung für Mac OS X 10.10 und die Arbeit zur Unterstützung des Windows-Betriebssystems ist im Gange.

HHVM bietet die vorgefertigten Pakete für die Betriebssysteme Debian und Ubuntu an.

Ubuntu 16.04 (Xenial)
Ubuntu 15.10 (Wily Werewolf)
Ubuntu 15.04 (Vivid)
Ubuntu 14.04 (Trusty)
Debian 8 (Jessie)
Debian 7 (Wheezy )

Sie können auch für andere Varianten von Linux-Distributionen aus dem Quellcode erstellen.

Freigabe:

HHVM wird von Facebook aktiv weiterentwickelt und Sie können alle acht Wochen eine Vollversion (stabile Version) erhalten. Jede dritte größere Point-Release von HHVM wird als Long-Term Support (LTS)-Release betrachtet. LTS wird fast ein Jahr lang unterstützt und mit kritischen Fehlerbehebungen und Sicherheitspatches zurückportiert.

Wenn Sie noch Fragen haben, besuchen Sie einen Blogbeitrag zu LTS-Versionen.

Diese Anleitung hilft Ihnen beim Einrichten von HHVM auf Ubuntu 16.04 und Debian 8. Diese Anleitung sollte auf früheren Versionen von Ubuntu wie Ubuntu 15.10, Ubuntu 14.04 LTS, Ubuntu 15.04 und Debian 7 funktionieren.

HHVM-Repository hinzufügen:

Fügen Sie nun ein HHVM-Repository auf Ihrem Computer hinzu, bevor Sie mit der Installation fortfahren.

Debian:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
echo deb http://dl.hhvm.com/debian $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/hhvm.list

Ubuntu:

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
sudo add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main"
PS:Ersetzen Sie für Ubuntu die Variable „$(lsb_release -sc)“ durch den Codenamen Ihrer Distribution. Bsp.:xenial

Installieren Sie HHVM auf Ubuntu 16.04 / Debian 8:

Aktualisieren Sie den Repository-Cache und fahren Sie mit der Installation von HHVM fort. Dadurch wird die neueste Version von HHVM auf Ihrem Computer installiert.

sudo apt-get update
sudo apt-get install -y hhvm

Überprüfen Sie die HHVM-Version.

$ php -v

HipHop VM 3.15.0 (rel)
Compiler: tags/HHVM-3.15.0-0-g92a682ebaa3c85b84857852d8621f528607fe27d
Repo schema: 225d4323575bbc8a498dc809a1c41354f6bca830

HHVM testen:

Sie können einfach einen Befehl zum Starten von HHVM aufrufen. Sie können den HHVM-Server mit zusätzlichen Argumenten mit dem Befehl „hhvm“ steuern.

Lassen Sie uns eine PHP-Datei erstellen, um die Anfrage über einen Webbrowser in Ihrem aktuellen Arbeitsverzeichnis zu bedienen.

vi test.php

Fügen Sie den folgenden Inhalt in die obige Datei ein.

Führen Sie den folgenden Befehl aus.

hhvm -m server -p 8080

-m stellt den Modus dar und gibt hier an, dass HHVM als HTTP-Servermodus läuft
-p konfiguriert den TCP-Port, den HHVM zum Abhören von HTTP-Anforderungen verwendet.

Erfahren Sie mehr über die HHVM-Modi.

Navigieren Sie in Ihrem Webbrowser zur folgenden URL.

http://ip-add-re-ss:8080/test.php

Sie sollten die folgende Seite sehen, die bestätigt, dass HHVM einwandfrei funktioniert.

Servertypen:

Der Servertyp wird basierend darauf klassifiziert, wie der HHVM die Seite für Benutzeranfragen bereitstellt; Es hat integrierte Unterstützung für Servertypen:Proxygen und FastCGI .

HHVM-ProxyGen:

Der Proxygen-Modus ist ein vollständiger Webserver, der direkt in HHVM integriert ist. Es ist sehr einfach einzurichten und in Betrieb zu nehmen und bedient Webanfragen schnell. Der Porxygen-Modus bietet einen leistungsstarken Webserver, der FastCGI und Nginx entspricht.

Wie ich bereits sagte, sind die Konfigurationsparameter sehr einfach und leicht einzurichten. Die Hauptkonfigurationsdatei von HHVM ist /etc/hhvm/server.ini .

Bearbeiten Sie die Konfigurationsdatei wie unten beschrieben.

sudo vi /etc/hhvm/server.ini

Passen Sie die HHVM-Konfigurationen Ihren Anforderungen an.

; configures the TCP port that HHVM uses to listen to HTTP requests.
hhvm.server.port = 80
; Configures HHVM server type
hhvm.server.type = proxygen
; Configures default document for the directory
hhvm.server.default_document = index.php
; Enabling Logs
hhvm.log.use_log_file = true
hhvm.log.file = /var/log/hhvm/error.log
; Configures Error document for the directory
hhvm.server.error_document404 = index.php
; Sets the default directory for HHVM webserver when it is started
hhvm.server.source_root=/var/www/public

Sie können diese Befehle ausführen, um HHVM so einzustellen, dass es beim Booten gestartet wird, und es jetzt als Dienst zu starten:

sudo update-rc.d hhvm defaults
sudo service hhvm restart

Erstellen Sie ein Verzeichnis /var/www/public, das die Dokumente Ihrer Website enthält.

sudo mkdir -p /var/www/public

Erstellen Sie eine Testdatei, um zu überprüfen, ob HHVM die Webanforderungen bedient.

sudo vi /var/www/public/index.php

Fügen Sie den Inhalt unten in die obige Datei ein.

Greifen Sie über den Browser Ihrer Wahl auf den HHVM-Webserver zu.

http://ip-add-re-ss

Sie erhalten die PHPInfo-Seite, auf der Sie alle Informationen über PHP finden können.

HHVM FastCGI:

In diesem Modus befindet sich HHVM zwischen Ihrem Webdokument (.php ) und Webserver (Apache oder Nginx ). FastCGI bietet eine hohe Leistung beim schnellen Bereitstellen von Webseiten, es ist PHP-FPM sehr ähnlich. HHVM lauscht entweder auf einem TCP-Socket (localhost:9000 ) oder ein UNIX-Socket. Webserver (Nginx oder Apache ) lauscht auf Port 80 oder 443 auf Webanfragen.

Wenn eine neue Anfrage eingeht, stellt der Webserver entweder eine Verbindung zu HHVM her oder verwendet mithilfe von HHVM FastCGI eine der zuvor geöffneten Verbindungen erneut. Sobald die Verbindung hergestellt ist, liefert der Webserver HHVM Informationen wie Anforderungsheader, Body und Pfad der auszuführenden Datei. Nun berechnet HHVM die empfangenen Informationen und sendet sie erneut mit FastCGI an den Webserver zurück. Zuletzt sendet der Webserver eine Antwort mit den angeforderten Daten an den Client.

Apache:

Installieren Sie den Apache-Server mit dem folgenden Befehl auf Ihrem Computer.

sudo apt-get install -y apache2

Wenn Sie die folgenden Befehle ausführen, wird Apache so eingerichtet, dass er mit HHVM zusammenarbeitet, um Webanfragen zu bedienen.

sudo /usr/share/hhvm/install_fastcgi.sh

Standardmäßig sucht Apache nach Webseiten in /var/www/html Verzeichnis, um die Anfragen zu bedienen, aber es weiß möglicherweise nicht, wie es mit .php umgehen soll Dateien. Sie müssten also Apache anweisen, jede Datei zu nehmen, die auf .hh endet oder .php und über fastCGI an HHVM gesendet.

Bearbeiten Sie die folgende Konfigurationsdatei.

sudo vi /etc/apache2/mods-enabled/hhvm_proxy_fcgi.conf

Stellen Sie es wie unten ein.

ProxyPassMatch ^/(.+\.(hh|php)(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1

Starten Sie die Apache- und HHVM-Dienste neu.

sudo /etc/init.d/apache2 restart
sudo /etc/init.d/hhvm restart

Nginx:

Installieren Sie Nginx mit dem folgenden Befehl auf Ihrem Computer.

sudo apt-get install -y nginx

Wenn Sie die folgenden Befehle ausführen, wird Nginx so eingerichtet, dass es mit HHVM zusammenarbeitet, um Webanfragen zu bedienen.

sudo /usr/share/hhvm/install_fastcgi.sh

Standardmäßig sucht Nginx nach den Webseiten in /usr/share/nginx/htm l (hängt vom Betriebssystem ab), um die Anfragen zu bedienen, aber es weiß möglicherweise nicht, wie es mit .php umgehen soll Dateien. Sie würden Nginx also anweisen, jede Datei zu nehmen, die auf .hh endet oder .php und über fastCGI an HHVM gesendet.

Bearbeiten Sie die folgende Konfigurationsdatei.

sudo vi /etc/nginx/sites-available/default

Ändern Sie unterhalb der Zeile, fügen Sie index.php zu Ihrer Indexzeile hinzu.

Von:

index index.html index.htm;

An:

index index.php index.html index.htm;

Starten Sie die Apache- und HHVM-Dienste neu.

sudo /etc/init.d/nginx restart
sudo /etc/init.d/hhvm restart

Um den FastCGI-Typ zu testen, erstellen/platzieren Sie die .php-Datei in den Standardverzeichnissen.

Apache und Nginx Ubuntu 16.04, 15.04 / Debian 8:

$ sudo vi /var/www/html/index.php

Fügen Sie den Inhalt unten in die obige Datei ein.