Table des matières

Installation de Php HHVM avec Nginx

Installation

Voir script dans /home/admin/script/nginx/ :

Fichier de configuration des sites avec Nginx utilisant HHVM

Dans le fichier de configuration du site utilisé par Nginx ( /etc/nginx/site-available/*.conf ), indiquer le contenu ci-dessous pour la directive location :

    location ~ "^(.+\.(?:php|hh))($|/)" {
        fastcgi_split_path_info ^(.+\.(?:php|hh))(.*)$;
 
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param SERVER_NAME $host;
 
        if ($uri !~ "^/uploads/") {
            fastcgi_pass unix:/var/run/hhvm/hhvm-35.sock;
        }   
        include fastcgi_params;
    }

Voir les infos HHVM

La fonction phpinfo() indiquera HipHop. Pour obtenir plus d'infos sur l'installation, utiliser ce script (par exemple) : wget https://gist.githubusercontent.com/ck-on/67ca91f0310a695ceb65/raw/69d9c0e1366f20aa99327652cfef332d900bf7e6/hhvminfo.php

Fallback et upstream

Afin de basculer automatiquement sur l'utilisation de PHP-FPM si HHVM rencontré un problème, il est possible d'utiliser les upstream de Nginx. Pour ce faire :

Fichier upstreams.conf :

# Upstreams
upstream hhvm-35_php-56 {
    server unix:/run/hhvm/hhvm-35.sock;
    server unix:/run/php-56-fpm.sock backup;
}
 
upstream hhvm-35_php-55 {
    server unix:/run/hhvm/hhvm-35.sock;
    server unix:/run/php-55-fpm.sock backup;
}

Contenu à ajouter au fichier nginx.conf juste avant le chargement des fichiers de conf des vhosts :

# Load all upstreams conf
include /etc/nginx/upstreams.conf;

Ressources