LEMP : serveur WordPress avec Nginx, MariaDB et HHVM

0

Après avoir testé diverses config pour héberger Wordpress, la solution parfaite est basée sur MariaDB, Nginx, HHVM, le tout sur une distribution Debian.

LEMP : Linux Nginx MariaDb PHP

Mais pourquoi LEMP, et pas LNMP? Tout simplement parce que le remplaçant d’apache se prononce ENGINE-X. On retrouve donc Linux Nginx MariaDB et PHP-FPM. Sauf que je vais remplacer PHP-FPM par HHVM, diablement plus rapide.

Pour la distribution, j’ai choisi Debian 8, dont la stabilité et la vélocité ne sont plus à démontrer. Ce tuto peut très bien s’appliquer à toute autre distribution Linux. il suffit d’adapter simplement quelques commandes, et de modifier certains chemins vers les fichiers de configuration.

Installer NGINX

Pour Debian et Ubuntu, il est nécessaire d’ajouter la clé utilisée pour signer Nginx :

wget http://nginx.org/keys/nginx_signing.key

Ensuite, il suffit d’ajouter cette clé :

apt-key add nginx_signing.key

Afin de s’assurer d’avoir toujours la dernière version stable de Nginx, j’ajoute le REPO officiel de NGINX

echo 'deb http://nginx.org/packages/debian/ jessie nginx' >> /etc/apt/sources.list
echo 'deb-src http://nginx.org/packages/debian/ jessie nginx' >> /etc/apt/sources.list

Les classiques mises à jour:

apt-get update && apt-get install nginx

Pour adapter les performances de Nginx à votre Serveur/VPS, il est nécessaire de connaitre le nombre de cœur de votre CPU :

cat /proc/cpuinfo | grep processor | wc -l

éditer ensuite le fichier de configuration nginx :

nano /etc/nginx/nginx.conf

Modifier la valeur du worker_processes en fonction de votre nombre de coeur CPU.

redémarrage de Nginx :

sudo service nginx restart

Voilà, le serveur NGINX est en place. En vous rendant sur l’accueil de votre Serveur, vous devriez voir la page de présentation de NGINX

Cas particulier : Si vous avez déjà Apache sur votre serveur, il faut tout d’abord sauvegarder vos  VirtualHost Apache pour ensuite pouvoir les rendre compatibles Nginx. Il faut donc commencer par Installer Nginx, mais sans démarrer le serveur, puis ensuite créer les blocs de serveur Nginx, tester votre config Nginx pour ensuite arrêter  apache et enfin démarrer Nginx. (optionnellement, vous pouvez aussi faire cohabiter les deux, avec Apache en port 80 et Nginx en port 8080 par exemple). Lorsque votre config est fonctionnelle, vous pourrez supprimer apache.

Installer MariaDB

Installation des repo et clés:

apt-get install software-properties-common
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb [arch=amd64,i386] http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.1/debian jessie main'

Installation de MariaDB:

sudo apt-get update
sudo apt-get install mariadb-server

Sécurisation de Mysql

mysql_secure_installation

Activation de INODB

nano /etc/mysql/my.cnf

Modifier l’encodage en UTF-8

[client]
...
default-character-set=utf8
...
[mysql]
...
default-character-set=utf8
...
[mysqld]
...
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
...

Redémarrage de mysql :

systemctl start mysql

Installer HHVM

repo et clés :

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
echo deb http://dl.hhvm.com/debian jessie main | sudo tee /etc/apt/sources.list.d/hhvm.list

Mises à jour et installation avec MemCached:

sudo apt-get update
sudo apt-get install hhvm memcached libmemcached-dev

Démarrage:

systemctl restart hhvm && systemctl enable hhvm

Configuration avec NGINX :

Pour fonctionner avec NGINX, un script de configuration automatique est disponible.

sudo /usr/share/hhvm/install_fastcgi.sh
/usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60

Redémarrage de HHVM et NGINX

systemctl restart hhvm
sudo service nginx restart

Voilà. A ce stade, vous avez NGINX, MariaDB et HHVM qui sont en place. Un petit test de vitesse vous montrera qu’on peut facilement atteindre des scores PageSpeed de plus de 90 sans plugin de cache ou CDN.

Recevoir la newsletter

Recevoir la newsletter

Recevez les dernières news et astuces Wordpress & Développement Web par email une fois par semaine

Bravo, vous êtes inscrits