======Installation de Php HHVM avec Nginx======
===== Installation =====
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 ''
===== 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 :
* 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;
===== Ressources =====
* [[http://hhvm.com/|Le site officiel de HHVM]]
* [[https://github.com/facebook/hhvm/wiki/Building%20and%20installing%20HHVM%20on%20Debian%208|Compilation de HHVM sous Debian 8 Jessie]]
* [[https://github.com/facebook/hhvm/wiki/FastCGI|Configuration de HHVM en FastCGI avec Nginx ou Apache]]
* [[https://github.com/facebook/hhvm/wiki/Prebuilt%20Packages%20for%20HHVM|Paquet HHVM pour différentes distributions]]
* [[https://github.com/facebook/hhvm/wiki/Prebuilt-Packages-on-Debian-8|Paquet HHVM pour Debian 8 Jessie]]
* [[https://rtcamp.com/tutorials/php/hhvm-with-fpm-fallback/|Configuration de HHVM avec PHP-FPM]]
* [[http://hhvm.com/blog/1817/fastercgi-with-hhvm|Wordpress avec Nginx et HHVM]]