Installation de Nginx, HHVM et MariaDB sur Debian 7

1/52/53/54/55/5 (4 votes, moyenne: 4,00 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 7. 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 python-software-properties -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 wheezy main'
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
wget http://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg
add-apt-repository 'deb http://packages.dotdeb.org wheezy all'
add-apt-repository 'deb-src http://packages.dotdeb.org wheezy all'
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

 

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 && update-rc.d hhvm defaults

 

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 :

service nginx restart

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é :

mkdir /var/www
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-wheezy

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.

1 Commentaire
Plus récents
Plus anciens Populaires
Inline Feedbacks
View all comments
vito
vito
8 années plus tôt

Salut,

perso avec nginx & hhvm j’ai eu des performance plus faible que avec php5.6 sur debian :/

j’ai testé sur une VM avec 5 go de ram et 3 vcore et la même chose m’est arrivé