Quel OS pour un serveur auto-hébergé ?

Choisir une distribution pour un serveur auto-hébergé est un sujet très rebattu sur le net. La conclusion la plus fréquente à ce sujet est de dire qu’il faut opter pour la distribution qu’on connaît le mieux, celle avec laquelle on se sent à l’aise et qu’on maîtrise.
Soit. La chose est irréfutable.
Néanmoins, lorsque la distribution qu’on connaît le mieux est Archlinux, comme c’est mon cas (Voilà une déclaration qui me classera dans les prétentieux pour Cyrille Borne…), alors il faut y réfléchir à deux fois. En effet, s’il me semble intéressant qu’un serveur soit à jour, cela n’a d’intérêt qu’en termes de sécurité et non pour profiter de logiciels récents. De plus, l’impératif me semble, pour un serveur, qu’il plante le moins possible et demande le moins d’interventions possibles après installation. Aussi intelligemment conçue que soit une rolling release, elle restera toujours moins stable qu’une distribution stabilisée pour plusieurs années.
Exit donc, de mon point de vue, Archlinux.
Comme j’hésitais entre Debian et FreeBSD et que j’avais deux serveurs à installer, je me suis amusé à en installer un de chaque.
Debian s’installe et s’entretient avec une facilité déconcertante. Installer apache, php, mysql et phpmysql dessus se fait à petits coups de

sudo aptitude install apache2

et le tour est joué. D’autant qu’une boîte de dialogue apparaît en console pour configurer facilement les programmes qui ont besoin de l’être (par exemple créer le compte root de mysql). Les modifications à faire à la main dans les fichiers de configuration sont donc très limitées et l’ensemble marche « out of the box ».
FreeBSD s’apprivoise de manière un peu plus difficile. Je l’avais déjà installé plusieurs fois sur des postes de travail, mais jamais sur un serveur. L’installation est presque aussi facile que celle de Debian, mais les choses se gâtent lorsqu’il s’agit de mettre en place apache, php et mysql.
Je me suis d’abord lancé sans trop me poser de questions à coups de

pkg_add -r apache22

Puis j’ai essayé de configurer à la main les différents services et ai ajouté leur lancement dans /etc/rc.conf Mais phpmyadmin résistait avec des erreurs multiples au lancement. Renseignements pris sur le web, il manquait plusieurs modules à mon php. J’ajoute alors le paquet php5-extensions, mais rien n’y fait.
Je décide alors de me tourner vers les ports.

portsnap fetch install cd /usr/ports/lang/php5-extensions make config

où je sélectionne entre autres BZ2 (utile pour compresser une base de données), MCRYPT (pour crypter les mots de passe stockés dans la base), MYSQL, MYSQLI, OPENSSL, PDO, PDO_SQLITE, SESSION (celui-là semblait manquer cruellement au lancement de phpmyadmin), TOKENIZER, XSL et ZIP (bien utile pour les mises à niveau d’un Wordpress, par exemple).

make install clean

Je relance le tout et patatras : marche toujours pas.
Je vous passe les lectures intenses et les bidouillages divers. Finalement, je désinstalle tous les paquets concernés et recompile le tout par les ports en surveillant de près le « make config ».
Et là, tout de même, ça marche impeccablement.

Pour conclure, vous me direz que Debian, c’est donc mieux car plus facile et vous aurez tort. Non que je veuille jouer le puriste de l’UNIX et autres postures ridicules. Je dirais plutôt que :

Debian, c’est mieux pour faire des choses « simples », comme installer un blog WordPress ou même une simple base de données gérée par phpmyadmin.

En revanche, des choses plus complexes comme installer un service dans une prison (jail) ou recompiler un logiciel pour optimiser et sécuriser son fonctionnement en désactivant les modules non utilisés, voilà des opérations parfaitement documentées et faciles à réaliser sur FreeBSD en comparaison avec ce qui existe à ma connaissance pour faire de même sur Debian.
Dernier point pour être complet : le serveur ftp inclus par défaut dans FreeBSD, ftpd, qui ne demande qu’à être activé au démarrage, est vraiment très facile à configurer et à utiliser « out of the box ».
Bref, comme souvent, tout dépend des besoins et de l’expérience de chacun !

links

social