Installation automatique de NGinx, PHP-FPM, MemCached sous Debian
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 les dépôts officiels ne contiennent que la vieille version 0.6.
J'ai donc développé un petit script shell pour automatiser l'installation d'un serveur Web rapide, léger et performant sous une Debian Lenny. Ce script va effectuer les choses suivantes:
- installer la version stable 0.8.54 de NGinx
- mettre en place un script de démarrage automatique de NGinx dans /etc/init.d
- installer le module PHP FastCGI FPM
- installation des modules Zlib, SSL, MySQL, Pear, XCache, GD, Curl
- installer de MemCached
- configurer NGinx pour le support des fichiers statiques et de PHP
- configurer un site Web par défaut dans /var/www
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 ici:
Vous pouvez également faire ces actions en ligne de commande dans un terminal:
wget http://svn.nicolargo.com/debianpostinstall/trunk/nginxautoinstall.sh
Il faut ensuite le rendre exécutable:
chmod a+x ./nginxautoinstall.sh
Lancement du script
Il faut lancer le script en root (droit d'administration):
su - -c "./nginxautoinstall.sh"
A la fin du script, vous devriez voir le message suivant:
--------------------------------------
NGinx + PHP5-FPM installation finished
--------------------------------------
NGinx configuration folder: /etc/nginx
NGinx default site configuration: /etc/nginx/sites-enabled/default-site
NGinx default HTML root: /var/www
If you use IpTables add the following rules:
iptables -A INPUT -i lo -s localhost -d localhost -j ACCEPT
iptables -A OUTPUT -o lo -s localhost -d localhost -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport http -j ACCEPT
--------------------------------------
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.