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;