======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]]