hhvm avec un fallback php-fpm

Bonjour !

Un petit billet en passant.
Depuis quelques jours j’utilise avec le plus grand bonheur hhvm (Hip Hop un petit coup d’Yop Virtual Machine), la machine virtuelle développée par Facebook et rendue Open Source depuis quelques temps déjà (et j’aime l’open source !)

Je l’ai installée sur Nginx, faudrait que j’y consacre également un petit billet.

Aujourd’hui, c’est juste un bout de code, une explication, une possibilité de basculer automatiquement en mode php5-fpm si jamais hhvm venait à s’arrêter…

En bref, si jamais mon NginX renvoie une erreur 502 à cause d’une hhvm indisponible, alors on bascule automatiquement sur php-fpm.

Les 2 services sont considérés comme lancés sur la machine.

J’avais un bout de code Nginx relatif au paragraphe « location » :

C’est la base de l’intégration de hhvm dans NginX.

On change ce bout de code en intégrant un fallback si on a du 502, et dans le paragraphe « server » on ajoute un « location » de connexion au php-fpm :

Voilà, c’est tout bête !

Pour essayer que ça fonctionne bien, arrêtez hhvm

et accédez à votre page, hip hop, ça marche !

Bon fallbacks à vous

Quand les sessions de php.ini ne sont pas potes avec hhvm (session.save_path qui part en sucette !)

hhvm-logo1

Je viens d’installer une hhvm sur mon petit serveur qui me va bien, et après avoir customisé les paramètres du fichier php.ini (paramètres  php de base de la Hip Hop Virtual Machine), je constate que la modification du répertoire des sessions n’a pas été prise en compte !

(Peu importe l’avis des puristes, seul compte le résultat, j’ai déplacé mon répertoire de sessions dans /home qui dispose d’une trèèèèèèès grande place, la racine ayant été taillée pour ne pas risque de débordement…)

Donc, le bug connu de hhvm dans sa config, est de garder le répertoire initial :

et que hhvm refuse de prendre en compte mon

Ce n’est pas grave, je ne vais pas aller batailler avec Facebook et ses développeurs qui nous font déjà la grâce bienveillante de nous mettre à disposition ce code. Je choisis donc la solution la plus simple qui existe : créer un lien symbolique !

Je vais faire un petit tour dans mon nouveau répertoire de stockage des sessions et « ls -l » :

Bref, c’est ok !
applause-sign

L’avantage est qu’il n’y a rien à modifier pour cette directive qui reste tout simplement :

Sinon, je pense que je ferai un petit topo rapide sur cette petite merveille… Enfin, moi j’adore !

Pour information, PHP est en version 5.6, derrière un petit Nginx, et je vais me lancer dans quelques benchs, histoire de vérifier les qualités de tout ce schmilblic !

schmilblic

 

@+ !