Installation automatique de NGinx, PHP-FPM, MemCached sous Debian

Date: 27/01/2011 | Catégories: Open-source,Planet-libre,Reseau,Web | Tags: ,,,,

Au début du mois nous avons vu ensemble l'installation d'un serveur NGinx sous Ubuntu. Sous Debian,  il faut mettre un peu plus les mains dans le cambouis, en effet il est parfois utile de partir des sources plutôt que des dépôts officiels (notamment au niveau de la présence ou non d'un module).

J'ai donc développé un petit script shell pour automatiser l'installation (ou la mise à jour) d'un serveur Web rapide, léger et performant sous une Debian (Squeeze ou Lenny).

Ce script va effectuer les choses suivantes:

Il est bien sûr possible d'adapter ce script à vos besoins et de l'utiliser comme bon vous semble. Si vous rencontrez des erreurs ou que vous avez en tête des améliorations possibles, merci de laisser un commentaire en bas de ce billet.

Récupération du script

Le script est disponible dans mon GitHub:

NGinxAutoInstall.sh

Vous pouvez également faire ces actions en ligne de commande dans un terminal:

Il faut ensuite le rendre exécutable:

Lancement du script

Il faut lancer le script en root (droit d'administration):

Si tout se passe correctement, le script devrait afficher:

Validation et test de performances

Votre serveur est maintenant opérationnel, il vous reste à mettre vos page HTML et scripts PHP dans le répertoire /var/www et tester le tout en entrant l'URL suivante dans un navigateur Web: http://@devotreserveur/.

Vous pouvez également tester les performances brutes de votre serveur en utilisant HTTPerf (disponible dans les dépôts Debian). Sur mon serveur de test (VPS Gandi 1 part), j'obtiens les perfos suivantes:

httperf --client=0/1 --server=localhost --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=5000 --num-calls=10

Request rate: 6833.4 req/s (0.1 ms/req)

Conclusion

Avec NGinx, on obtient rapidement de très bonnes performances et le couple PHP-FPM, MemCached permet d'avoir une bonne base pour héberger, par exemple, votre blog WordPress (lire l'article sur le sujet dans ce blog).

Je suis bien sur preneur de tous commentaires/remarques sur le script.