HHVM oder die HipHop Virtual Machine ist eine virtuelle Maschine für PHP, die von Facebook entwickelt wurde, um die Leistung von PHP-Anwendungen zu verbessern. Im Gegensatz zur regulären PHP-Laufzeit verwendet HHVM einen Just-in-Time-Compiler, um Skripte in nativen Maschinencode zu konvertieren. Infolgedessen haben Benchmarks von Drittanbietern eine bis zu dreifache Reduzierung der Ladezeit gegenüber PHP-FPM 5.4 für Aufgaben wie das Laden einer regulären Drupal-Website gezeigt.
Ein Wort der Warnung
HHVM ist zwar sehr schnell, befindet sich jedoch noch in der Entwicklung und führt möglicherweise einige Software nicht ordnungsgemäß aus oder unterstützt möglicherweise einige erforderliche Erweiterungen nicht. Mit Vorsicht fortfahren. Eine Liste der unterstützten, integrierten PHP-Erweiterungen finden Sie unter diesem Link .
Unterstützte Distributionen
- Ubuntu
- 10.04 (klar)
- 12.04 (genau)
- 14.04 (vertrauenswürdig)
- Debian
- Minze
Dies sind die Distributionen, die Facebook und die HHVM-Betreuer unterstützen, und die Distributionen, die weiterhin aktiv für Server verwaltet werden. Es ist zwar möglich, HHVM auf einem Ubuntu 14.10-Server zu installieren, dies wird jedoch (zum Zeitpunkt des Schreibens) von HHVM nicht unterstützt und kann dazu führen, dass schlimme Dinge passieren.
Bedarf
- Eine der oben genannten Distributionen.
- Root-Zugriff für die Konfiguration, bei der Pakete installiert werden.
HHVM installieren
Die Installation von HHVM selbst ist schnell und problemlos und umfasst nicht viel mehr als die Konfiguration von Repositorys und die Installation.
Ubuntu
Nur für luzide (10.04) und präzise (12.04) Benutzer: Für beide Ubuntu-Versionen müssen Repositorys hinzugefügt werden. Um den Prozess zu rationalisieren, müssen wir sicherstellen, dass der add-apt-repositoryBefehl bereit ist. Wenn Sie nicht klar oder präzise verwenden, überspringen Sie diesen Befehlssatz. Andernfalls:
sudo apt-get update
sudo apt-get install python-software-properties
Nur für lucid (10.04) Benutzer: HHVM hat einige weitere Abhängigkeiten, die nicht im Basissystem oder in den Repositorys enthalten sind.
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8 g++-4.8 gcc-4.8-base
Nur für präzise (12.04) Benutzer: Sie müssen auch ein Repository hinzufügen, um Bibliotheken zu erhalten, die zum Ausführen von HHVM erforderlich sind.
sudo add-apt-repository ppa:mapnik/boost
Für HHVM muss außerdem ein GPG-Schlüssel für das Repository installiert werden.
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
Sobald dies erledigt ist, können wir das HHVM-Repository zu einer sources.listDatei hinzufügen .
echo deb http://dl.hhvm.com/ubuntu DISTRIBUTION_VERSION main | sudo tee /etc/apt/sources.list.d/hhvm.list
Stellen Sie sicher, dass DISTRIBUTION_VERSIONSie den Codenamen Ihrer Ubuntu-Version ersetzen : klar, präzise oder vertrauenswürdig.
Jetzt können wir installieren.
sudo apt-get update
sudo apt-get install hhvm
Und wir sind fertig!
Debian
Die HHVM-Installation unter Debian ähnelt Ubuntu, ist jedoch über Distributionen hinweg weniger fragmentiert. Sie benötigen nur einen Befehlssatz für Jessie oder Keuchen.
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
echo deb http://dl.hhvm.com/debian DISTRIBUTION_VERSION main | sudo tee /etc/apt/sources.list.d/hhvm.list
sudo apt-get update
sudo apt-get install hhvm
DISTRIBUTION_VERSIONStellen Sie sicher, dass Sie in der zweiten Zeile den Codenamen, das Jessie oder das Keuchen Ihrer Debian-Version ersetzen. HHVM sollte jetzt installiert sein.
Minze
Die Mint-Installation ist Debian auch insofern sehr ähnlich, als sie vereinfacht ist.
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
echo deb http://dl.hhvm.com/mint petra main | sudo tee /etc/apt/sources.list.d/hhvm.list
sudo apt-get update
sudo apt-get install hhvm
Da petra derzeit die einzige unterstützte Mint-Distribution ist, ist es soweit!
Konfigurieren mit Apache / Nginx
Mit HHVM wird ein nützliches Konfigurationsskript geliefert, das automatisch einen CGI-Handler für beide Server einrichtet.
Wenn Sie Nginx verwenden, müssen Sie die Konfigurationsdatei Ihres Servers (standardmäßig /etc/nginx/sites-available/default) bearbeiten , um die FastCGI-Verarbeitung zu deaktivieren. Suchen Sie nach einem Abschnitt wie dem folgenden und stellen Sie sicher, dass er entweder nicht vorhanden oder vollständig auskommentiert ist (indem Sie ihn #am Anfang jeder Zeile des Abschnitts hinzufügen ):
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
# fastcgi_pass unix:/var/run/php5-fpm.sock;
# fastcgi_index index.php;
# include fastcgi_params;
#}
Wenn Sie Apache verwenden, müssen Sie nichts Spezielles tun.
Führen Sie danach einfach das folgende Skript aus.
sudo /usr/share/hhvm/install_fastcgi.sh
Testen von HHVM
Apache oder Nginx sollten automatisch konfiguriert und neu gestartet werden, und HHVM sollte jetzt auf Ihrem Server ausgeführt werden. Um es zu testen, können Sie entweder eine Datei wie folgt erstellen:
<?php phpinfo();
Suchen Sie nach "HipHop" oder "HHVM", oder führen Sie ein Skript wie das folgende aus:
<?php if(defined('HHVM_VERSION')) { echo 'HHVM works!'; }
Wenn "HHVM funktioniert!" erscheint, dann sind Sie fertig!