Installation de Nginx, HHVM et MariaDB sur Debian 8

1/52/53/54/55/5 (4 votes, moyenne: 3,75 sur 5)
Loading...
I

Attention, cet article a plus d'une année d'ancienneté. Il est possible que les informations présentées ne soient plus à jour, spécialement dans le cadre d'un article technique.


Bonjour à tous,

 

Aujourd’hui, nous allons voir comment faire un environnement web hautes-performances sous Debian 8. Actuellement, c’est une des configurations types les plus rapides qui existe pour le traitement web/php/mysql mais, ce n’est pas ce qui offre la meilleure compatibilité. Je vous laisse regarder les autres procédures du site pour voir si elles correspondent mieux à vos attentes.

Avant de commencer, connectez-vous avec l’utilisateur root sur votre serveur.

Configuration des repository :

On va commencer par installer les repository nécessaires :

apt-get install software-properties-common -y
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
add-apt-repository 'deb http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.0/debian sid main'
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
echo deb http://dl.hhvm.com/debian jessie main | tee /etc/apt/sources.list.d/hhvm.list
apt-get update

 

Installation des composants du serveur :

Nous allons installer Nginx, MariaDB, HHVM, Memcached et le client NTP pour que votre machine soit toujours à l’heure.

apt-get install nginx mariadb-server hhvm libgmp-dev memcached libmemcached-dev ntp -y

 

Configuration du client NTP :

La configuration du client NTP est éditable avec cette commande :

nano /etc/ntp.conf

 

Vous devez rajouter les serveurs de temps qui correspondent à votre zone. Vous pourrez les trouver sur ce site.

Par exemple pour la France :

server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org
server 3.fr.pool.ntp.org

 

Configuration de HHVM :

Nous allons maintenant le configurer pour qu’il cache automatiquement sa version et pour qu’il utilise les sockets Unix à la place d’un port TCP.

Avant tout nous allons commencer par ouvrir le fichier de configuration de la bête :

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

; headers
expose_php = 0

 

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

systemctl restart hhvm && systemctl enable hhvm

 

Configuration de Nginx :

Maintenant, on va passer à la configuration de Nginx.

Lancez la ligne de commande suivante pour éditer la configuration principale de Nginx :

nano /etc/nginx/nginx.conf

 

Adaptez le worker_processes en fonction de votre nombre de cœurs cpu :

worker_processes 8;

 

Sauvegardez ce fichier avec Ctrl+O et ouvrez le fichier de configuration de HHVM :

rm /etc/nginx/hhvm.conf
nano /etc/nginx/hhvm.conf

 

Remplissez le avec ceci :

location ~ \.(hh|php)$ {
fastcgi_keep_conn on;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/hhvm/server.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

 

Sauvegardez le fichier et redémarrez Nginx :

systemctl restart nginx

Création du répertoire web pour votre site :

Nous allons maintenant créer le répertoire qui va accueillir votre site web ainsi que le virtualhost Nginx associé :

cd /var/www
rm -rf *
chown -R root:www-data /var/www
chmod g+w -R /var/www

 

Nous allons aussi créer un fichier index.php à des fins de test :

nano /var/www/index.php

 

Remplissez-le avec ceci et sauvegardez-le :

<?php phpinfo(); ?>

 

Création du VirtualHost pour Nginx :

Maintenant nous allons créer le VirtualHost par défaut sur Nginx pour qu’il affiche votre site web :

rm /etc/nginx/sites-enabled/default
nano /etc/nginx/sites-enabled/default

 

Remplissez-le avec ceci :

server {
listen 80 default_server;

root /var/www;

index index.php index.html;

access_log /var/log/nginx/default-access_log;
error_log /var/log/nginx/default-error_log;

location / {
try_files $uri $uri/ /index.php?$args;
}

include /etc/nginx/hhvm.conf;
}

 

Maintenant, redémarrez Nginx et tapez l’adresse de votre serveur dans votre navigateur favori, vous devriez avoir cet affichage :

nginx-hhvm-jessie

A propos de l'auteur

Nicolas Simond

Ingénieur Systèmes et Réseaux et guitariste hard rock et metal à mes heures perdues.
Je suis le créateur et l'unique rédacteur d'Abyss Project, c'est ici que je note la plupart de mes procédures et quelques divagations.

Si vous l'article vous a aidé, pensez à me payer un café :)

Subscribe
Notify of
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

11 Commentaires
Plus récents
Plus anciens Populaires
Inline Feedbacks
View all comments
Hasan
Hasan
8 années plus tôt

Conseillerais-tu cette installation pour un prestashop?

Hasan
Hasan
Reply to  Hasan
8 années plus tôt

Super! Merci beaucoup!

Snor
Snor
8 années plus tôt

Merci pour ces tuto tjs complet et enrichissant ! J’aurais une question avec la sortie de debian 8. En terme de performance et de compatibilité, pour un site wordpress, conseils-tu nginx (1.8) ou Apache (2.4)? Car dans un de tes anciens articles daté d’un an nginx était derrière avec les test utilisant cmsimple. Mais nginx a beaucoup évolué auj.

Snor
Snor
Reply to  Snor
8 années plus tôt

Merci! 🙂

alex
8 années plus tôt

merci pour ce how-to j’ai découvert hhvm c’est une usine nucléaire ce truc… par rapport a php-ng et je préfère avoir la dernier version aussi de mariaDB

Seboss666
8 années plus tôt

Je croyais que MariaDB 10 était déjà dispo dans Jessie, pas nécessairement besoin de passer par un dépôt tiers (à moins de vouloir à tout prix la dernière version).

Seboss666
Reply to  Seboss666
8 années plus tôt

Confirmation par l’équipe de dotdeb (qui est en train de revoir sa chaîne de compilation pour tenir les trois éditions) : https://www.dotdeb.org/2015/04/26/debian-8-0-jessie-has-been-released-and-what-it-means-for-dotdeb/