Bonjour à tous,

 

Suite à la lecture de l’article de l’ami @Seboss666 j’ai eu l’idée d’installer HHVM pour le blog tout en gardant mes différents sockets PHP-FPM à coter pour les autres sites.

Je parlerais de ce mix un peu custom dans un autre article, aujourd’hui nous allons juste voir l’installation de HHVM en mode daemon avec l’utilisation des sockets unix. Rien que ça.

Si vous ne savez pas ce qu’est HHVM allez donc faire un tour à la fin de l’article de Seboss avant.

 

Téléchargement et installation de HHVM :

Pour télécharger et installer HHVM lancez les commandes suivantes :

apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
echo deb http://dl.hhvm.com/debian wheezy main | tee /etc/apt/sources.list.d/hhvm.list
apt-get update && apt-get install hhvm -y && update-rc.d hhvm defaults

 

Tout ce bousin vous lancera aussi HHVM au démarrage de la machine tant qu’à faire 😉

 

Configuration de HHVM :

La partie intéressante commence.

Avant tout nous allons commencer par ouvrir le fichier de configuration de HHVM :

nano /etc/hhvm/server.ini

 

Maintenant éditez votre fichier pour qu’il ressemble à celui-ci :

; php options

pid = /var/run/hhvm/pid

; hhvm specific

; hhvm.server.port = 9000
hhvm.server.file_socket = /var/run/hhvm/server.sock
hhvm.server.type = fastcgi
hhvm.server.default_document = index.php
hhvm.log.use_log_file = true
hhvm.log.file = /var/log/hhvm/error.log
hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc

 

La ligne qui nous permet de tourner avec les sockets Unix c’est celle-ci :

hhvm.server.file_socket = /var/run/hhvm/server.sock

 

Enregistrez votre fichier avec un petit coup de Ctrl+O et redémarrez le service :

service HHVM restart

 

Configuration sur Nginx :

Ouvrez votre virtualhost Nginx et changez le chemin du socket unix :

 location @php {
 try_files $uri =404;
 include /etc/nginx/fastcgi_params;
 #fastcgi_pass unix:/var/lib/php5-fpm/web.sock;
 fastcgi_pass unix:/var/run/hhvm/server.sock;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 fastcgi_intercept_errors on;
 }

Test de fonctionnement :

Créez un petit fichier phpinfo à la racine de votre site :

<?php
phpinfo();
?>

 

La sortie devrait être très épurée :

hhvm-test

 

Problème de permissions :

Il est possible que vous ayez quelques problèmes de permissions comme ce que j’ai pu rencontrer avec l’envoi d’images sur mon WordPress.

Si c’est le cas, faites les chmods suivants sur le dossier de votre site web :

chown -R root:www-data /var/www/ton-site
chmod g+w -R /var/www/ton-site