✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Wie richte ich HHVM auf dem Ubuntu VPS ein?

19

Mein anfänglicher VPS (Virtual Private Server) hatte nur 512 MB RAM, 1 Kern und 10 GB HDD. Später habe ich wegen eines Vorfalls wegen Speichermangels auf 2 Kerne, 1 GB RAM und 20 GB HDD aufgerüstet . Vor ein paar Tagen jedoch wächst der Datenverkehr (die meisten davon stammen von Bots ), der VPS konnte kaum damit umgehen, und deshalb habe ich erneut auf 3 Kerne und 2 GB RAM aufgerüstet .

Die PHP-Version bei VPS ist 5.5 und hat daher einen eingebauten Beschleuniger, OpCache, der PHP-Opcode zwischenspeichert. Der Opcache wird eingeführt, um APC (Another PHP Cache) zu ersetzen, ein Open-Source-Projekt, das hauptsächlich verwendet wird, um PHP-Code vor Version 5.4.x oder früheren Versionen zu beschleunigen. Das HHVM funktioniert ähnlich. Es kompiliert den PHP-Code zum ersten Mal in Assembler und dann wird der Assembler-Code, wenn er gefunden und noch gültig ist, ausgeführt, ohne den gleichen PHP-Code neu zu interpretieren. Diese Idee ist der .NET-Plattform sehr ähnlich, wo die .NET-Sprachen wie C# zur Laufzeit (JIT = Just In Time)-Compiler übersetzt und in nativen Code kompiliert werden. Aus diesem Grund laufen die .NET-Anwendungen zunächst langsam, neigen aber später dazu, schneller zu werden, da sie zur Laufzeit in nativen Code kompiliert und zwischengespeichert werden.

Natürlich gibt es noch weitere Neuerungen. Die neue Sprache [Hack] basiert auf PHP. Wir wissen, dass die PHP-Sprache eine freie Typsprache ist, was bedeutet, dass Sie für keine Variablen einen Typ angeben müssen (tatsächlich gibt es keine Möglichkeit, dies explizit zu tun). Die Typen werden verwendet, wenn sie gebraucht werden. Die Hack-Sprache ist eine graduelle Typsprache, was bedeutet, dass das erste Mal, wenn Sie einen Typ definieren, der Typ nicht geändert werden kann. Dies hilft, robusten Code zu fördern und die Entwicklungseffizienz zu verbessern. Dies ist ein ziemlich großes Thema, das in einem separaten Beitrag vorgestellt werden sollte.

Die Installation von HHVM unter Linux (in meinem Fall Ubuntu) ist ziemlich einfach.

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

Sie können entweder die vorkompilierten Binärdateien oder den Quellcode herunterladen und lokal kompilieren. Das Folgende wird aus einem vorkompilierten Binär-Repository installiert.

wget -O - 

Sie können dann den folgenden Befehl ausführen, um den Apache- oder ngix-Server zu konfigurieren.

/usr/share/hhvm/install_fastcgi.sh

Nachdem Sie hhvm installiert haben, können Sie es in der Befehlszeile verwenden, um den PHP-Quellcode wie folgt auszuführen:

hhvm hello-world.php

HHVM-Befehlszeilenparameter

Wir können den Apache-Server vorübergehend deaktivieren:

sudo service apache2 stop

Führen Sie den hhvm-Server aus, indem Sie Port 80 abhören (Sie müssen also andere Server stoppen, die denselben Port abhören):

hhvm -m server

Und dann können Sie den PHP-Code im Browser testen, der an den HHVM-Server übergeben wird.

Wenn nach der Installation und Konfiguration der Fehler 404 not found auftritt, müssen Sie wahrscheinlich die folgende Zeile zu /etc/hhvm/server.ini hinzufügen

hhvm.server.fix_path_info = true

Und starten Sie hhvm mit sudo service hhvm restart neu.

Ich habe den Server eine Weile getestet und überwacht und ehrlich gesagt keinen Unterschied festgestellt, wahrscheinlich wegen des nicht wahrnehmbaren Datenverkehrs. Die vom Befehl htop aufgelisteten Prozesse wurden jedoch von apache2 -k start auf hhvm geändert

Wir können auch eine PHP-Datei mit folgendem Inhalt erstellen und testen, ob HHVM im Browser funktioniert:

<?php
  echo  defined('HHVM_VERSION')?'Using HHVM':'Not using HHVM';
?>

Die WordPress-Sites können mit HHVM ausgeführt werden, aber HHVM scheint die GB2312-Codierung (und möglicherweise auch andere) nicht zu unterstützen, da dies die Zeichen durcheinander bringt. Der PHP-Code der Fotogalerie zeigte eine leere Seite mit HHVM und ich habe die Ursache immer noch nicht herausgefunden.

Ich habe mich trotzdem entschieden, HHVM loszuwerden, das aktuelle Paket: Apache2 + PHP5.5 + Mysql funktioniert ganz gut. Vielleicht werde ich HHVM in Zukunft zurückbringen, wenn die VPS wieder einen enormen Datenverkehr erfahren.

sudo service hhvm stop
sudo apt-get remove hhvm

Wir müssen die Apache2-Einstellungen nach der HHVM-Deinstallation wiederherstellen.

sudo a2dismod proxy_fcgi
sudo a2dismod proxy
rm /etc/apache2/mods-enable/hhvm*.conf
sudo service apache2 restart

Aufnahmequelle: helloacm.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen