informatique:serveurs:installation-logiciels:hhvm-nginx

Installation de Php HHVM avec Nginx

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

  • Passer en admin : su - admin
  • Se rendre dans le dossier des scripts : cd script/nginx/
  • Lancer le script : sh hhvm_3.x.sh

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;
    }

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

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 :

  • Créer un fichier upstreams.conf : vi /etc/nginx/upstreams.conf
  • Mettre le contenu indiqué ci-dessous dedans et enregistrer le fichier (à modifier en fonction des versions de php installées).
  • Ouvir rle fichier nginx.conf : vi /etc/nginx/nginx.conf
  • Ajouter une ligne : include /etc/nginx/upstreams.conf;
  • Ajouter/modifier les lignes suivante des fichiers de conf des vhosts qui veulent utiliser HHVM :
    • Pour le Fallback, ajouter une ligne contenant : fastcgi_keep_conn on;
    • Remplacer le socket utilisé par fastcgi par un upstream : fastcgi_pass hhvm-35_php-56;

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;
  • informatique/serveurs/installation-logiciels/hhvm-nginx.txt
  • Dernière modification : 2020/02/09 14:52
  • de jpmilcent