Au cours des derniers mois, HHVM a pris d'assaut la communauté PHP. Depuis la sortie de WordPress 3.9, HHVM est désormais 100 % compatible avec WordPress.
Malheureusement, HHVM n'est pas tout à fait prêt à être utilisé en production dans des environnements auto-hébergés. D'après mon expérience, HHVM se bloque environ une fois par jour, ce qui le rend non viable pour un site où la haute disponibilité est importante. Récemment, WP Engine a publié le projet Mercury qui permet à HHVM d'échouer gracieusement en revenant à PHP 5.5 en cas d'échec.
Dans cet article, nous allons installer HHVM sur un serveur Ubuntu exécutant la dernière version LTS, 14.04. Cela peut être accompli soit en utilisant un programme de visualisation comme VirtualBox (gratuit) avec un fichier ISO Ubuntu téléchargé, soit en utilisant un service d'hébergement cloud. DigitalOcean propose des serveurs cloud pour 5 $ par mois, ce que j'utiliserai dans ce tutoriel.
La première chose à faire est de mettre à jour tous les packages et dépendances :
$ sudo apt-get update && sudo apt-get upgrade
Installer MySQL
Vous devez maintenant installer MySQL, la base de données qui alimente WordPress.
$ sudo apt-get install mysql-server
Vous devez définir un mot de passe root MySQL pour des raisons de sécurité évidentes. Si vous êtes très soucieux de la sécurité, vous devez également exécuter $ mysql_secure_installation
et suivez les étapes nécessaires pour verrouiller votre serveur.
Installer Nginx
La prochaine chose que vous devez faire est de configurer un serveur Web. Je préfère utiliser Nginx car il est léger, polyvalent et facile à configurer.
$ sudo apt-get install nginx
Installer HHVM
Installez maintenant HHVM. Ce n'est pas aussi simple que d'installer d'autres packages car il n'est pas disponible sur le référentiel Ubuntu. Au lieu de cela, nous devons le télécharger depuis HHVM lui-même, ainsi que quelques dépendances.
wget -O - https://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add - echo deb http://dl.hhvm.com/ubuntu trusty main | sudo tee /etc/apt/sources.list.d/hhvm.list sudo apt-get update cd /tmp && wget http://security.ubuntu.com/ubuntu/pool/main/libm/libmemcached/libmemcached10_1.0.8-1ubuntu2_amd64.de... sudo dpkg -i libmemcached10_1.0.8-1ubuntu2_amd64.deb && rm libmemcached10_1.0.8-1ubuntu2_amd64.deb sudo apt-get install -y libgnutls26 wget http://mirrors.kernel.org/ubuntu/pool/main/r/rtmpdump/librtmp0_2.4+20121230.gitdf6c518-1_amd64.deb && sudo dpkg -i librtmp0_2.4+20121230.gitdf6c518-1_amd64.deb && rm librtmp0_2.4+20121230.gitdf6c518-1_amd64.deb sudo apt-get install hhvm
Maintenant que nous avons installé HHVM, nous devons exécuter un script d'installation qui installera le module HHVM pour Nginx.
sudo /usr/share/hhvm/install_fastcgi.sh
Maintenant, redémarrez HHVM et Nginx.
sudo /etc/init.d/hhvm restart
sudo /etc/init.d/nginx restart
Configurer le site Web
La prochaine chose que nous devons faire est de configurer un hôte virtuel pour notre site Web. En règle générale, vous créez un nouvel hôte virtuel pour chaque site Web sur un serveur, mais puisque nous testons (et pour des raisons de simplicité), nous allons simplement écraser le contenu de /etc/nginx/sites-available/default
avec un simple fichier ci-dessous :
Remarque :vous avez besoin des autorisations root pour modifier ce fichier.
server { listen 80; server_name localhost; # or replace localhost with domain name include hhvm.conf; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /var/www; index index.php; location / { try_files $uri $uri/ /index.php?$args; } }
Nous pouvons maintenant configurer WordPress :
- Rechargez votre configuration nginx mise à jour :
$ sudo service nginx reload
. - Créez maintenant un répertoire racine Web :
$ sudo mkdir /var/www
. - Télécharger WordPress :
$ sudo wget
http://wordpress.org/latest.tar.gz
/var/www/
. - Extraire WordPress :
$ sudo tar xvf /var/www/latest.tar.gz
. - Déplacez les fichiers WordPress vers la racine Web :
$ sudo mv /var/www/wordpress/* /var/www/
. - Nettoyer :
$ sudo rm -rf /var/www/wordpress /var/www/latest.tar.gz
. - Définir les autorisations :
$ sudo chmod -R 775 /var/www
. - Définir les groupes :
$ sudo chown -R www-data.www-data /var/www
.
Configurer la base de données WordPress
Connectez-vous à MySQL $ mysql -u root -p
. Exécutez maintenant les commandes suivantes :
CREATE DATABASE wordpress; CREATE USER wordpress@localhost; GRANT ALL PRIVILEGES ON wordpress.* to username@localhost IDENTIFIED BY 'password'; FLUSH PRIVILEGES; quit
Vous pouvez maintenant vous rendre sur l'adresse IP de votre serveur et suivre la fameuse installation en cinq minutes.