HHVM , ou HipHop Virtual Machine , est une machine virtuelle pour PHP développée par Facebook pour améliorer les performances des applications PHP. Contrairement au runtime PHP standard, HHVM utilise un compilateur juste à temps pour convertir les scripts en code machine natif. En conséquence, les benchmarks tiers ont montré une réduction du temps de chargement jusqu'à 3 fois supérieure à PHP-FPM 5.4 pour des tâches telles que le chargement d'un site Web Drupal standard.
Un mot d'avertissement
Bien que très rapide, HHVM est également en cours de développement et peut ne pas exécuter correctement certains logiciels ou ne pas prendre en charge certaines extensions nécessaires. Procéder avec prudence. Pour une liste des extensions PHP intégrées prises en charge, suivez ce lien .
Distributions prises en charge
- Ubuntu
- 10.04 (lucide)
- 12.04 (précis)
- 14.04 (fidèle)
- Debian
- 8 (jessie)
- 7 (sifflement)
- menthe
Ce sont les distributions que Facebook et les mainteneurs HHVM prendront en charge, et les distributions qui sont toujours activement maintenues pour les serveurs. Bien qu'il soit possible d'installer HHVM sur un serveur Ubuntu 14.10, cette opération n'est pas prise en charge (au moment de la rédaction) par HHVM et peut entraîner de mauvaises choses.
Exigences
- L'une des distributions ci-dessus.
- Accès root pour la configuration de l'installation des packages.
Installation de HHVM
L'installation de HHVM elle-même est rapide et indolore, ce qui implique beaucoup plus que la configuration de référentiels et l'installation.
Ubuntu
Pour les utilisateurs lucides (10.04) et précis (12.04) uniquement: les deux versions d'Ubuntu nécessitent l'ajout de référentiels. Pour rationaliser le processus, nous devons nous assurer que la add-apt-repositorycommande est prête. Si vous n'utilisez ni lucide ni précis, ignorez cet ensemble de commandes. Autrement:
sudo apt-get update
sudo apt-get install python-software-properties
Pour les utilisateurs lucid (10.04) uniquement: HHVM a quelques autres dépendances qui ne sont pas incluses dans le système de base ou les référentiels.
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
Pour les utilisateurs précis (12.04) uniquement: vous devrez également ajouter un référentiel pour obtenir les bibliothèques nécessaires à l'exécution de HHVM.
sudo add-apt-repository ppa:mapnik/boost
HHVM nécessite également l'installation d'une clé GPG pour son référentiel.
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
Une fois cela fait, nous pouvons ajouter le référentiel de HHVM à un sources.listfichier.
echo deb http://dl.hhvm.com/ubuntu DISTRIBUTION_VERSION main | sudo tee /etc/apt/sources.list.d/hhvm.list
Assurez-vous de remplacer DISTRIBUTION_VERSIONpar le nom de code de votre version Ubuntu: lucide, précis ou fiable.
Maintenant, nous pouvons installer.
sudo apt-get update
sudo apt-get install hhvm
Et nous avons terminé!
Debian
L'installation HHVM sur Debian est similaire à Ubuntu, mais moins fragmentée entre les distributions. Vous n'aurez besoin que d'un seul ensemble de commandes pour Jessie ou Wheezy.
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
Assurez-vous de remplacer DISTRIBUTION_VERSIONsur la deuxième ligne le nom de code de votre version Debian, Jessie ou Wheezy. HHVM devrait maintenant être installé.
menthe
L'installation de Mint est également très similaire à Debian en ce qu'elle est simplifiée.
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
Étant donné que Petra est la seule distribution Mint prise en charge pour le moment, c'est tout!
Configuration avec Apache / Nginx
Avec HHVM vient un script de configuration astucieux qui configure automatiquement un gestionnaire CGI pour l'un ou l'autre serveur.
Si vous utilisez Nginx, assurez-vous de modifier le fichier de configuration de votre serveur (par défaut /etc/nginx/sites-available/default) pour désactiver le traitement FastCGI. Recherchez une section comme celle-ci et assurez-vous qu'elle n'existe pas ou qu'elle est entièrement mise en commentaire (en ajoutant #au début de chaque ligne de la section):
# 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;
#}
Si vous utilisez Apache, vous n'avez rien de spécifique à faire.
Après cela, exécutez simplement le script suivant.
sudo /usr/share/hhvm/install_fastcgi.sh
Test de HHVM
Apache ou Nginx devraient être automatiquement configurés et redémarrés, et HHVM devrait maintenant fonctionner sur votre serveur. Pour le tester, vous pouvez soit créer un fichier comme celui-ci:
<?php phpinfo();
Et recherchez "HipHop" ou "HHVM", ou vous pouvez exécuter un script comme celui-ci:
<?php if(defined('HHVM_VERSION')) { echo 'HHVM works!'; }
Si "HHVM fonctionne!" apparaît, alors vous êtes prêt!