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;