GNU/Linux Magazine Hors-série N°
Numéro
66

Apache, le guide complet

Temporalité
Mai/Juin 2013
Image v3
Apache, le guide complet
Article mis en avant

Résumé
Alors qu'Internet, en tant qu'interconnexion de réseaux, existe depuis la fin des années 60, le Web (www, World Wide Web) lui-même est bien plus jeune ! Retour sur son histoire...

Dans ce numéro...


Pour communiquer, un serveur et un client ont besoin d'utiliser un protocole commun. Pour le Web, ce protocole s'appelle HyperText Transfer Protocol ; il a été inventé par Tim Berners-Lee, comme pierre angulaire du World Wide Web.
Leur serveur HTTP est le premier et le plus connu de leurs projets, mais la fondation Apache va bien plus loin que cela... OpenOffice, Subversion, Tomcat... cette fondation gère d'autres projets d'envergure. Faisons le tour du propriétaire...
Au sein de la fondation Apache, le serveur HTTP continue d'évoluer. Il a bien sûr atteint aujourd'hui un seuil de maturité qui fait que les évolutions se font en douceur, mais nous allons voir qu'il est le fruit de beaucoup de réflexions et de choix, grâce auxquels nous disposons aujourd'hui d'un outil puissant et modulaire.
De nombreuses solutions existent pour desservir des sites web ; le serveur HTTP de la fondation Apache reste cependant le leader sur ce marché, avec plus de la moitié des sites l'utilisant dans le monde. Nous appellerons cet incontournable « Apache » par la suite, mais rappelons-nous que ce n'est pas le seul projet de cette fondation ! Nous aborderons plus précisément la version 2 de ce logiciel, qui est également appelée « Apache2 ».
Une fois un serveur Apache en place, il est nécessaire de le configurer afin de répondre à nos besoins. Cette configuration se fait à travers un certain nombre de fichiers, à modifier avec votre éditeur de texte préféré.
Quel que soit le type de site web que l'on désire mettre en place, un moment arrive où le besoin se fait sentir de restreindre l'accès à certaines ressources : stockage de données privées, interfaces d'administration... Apache met à disposition, en standard, un certain nombre de mécanismes d'authentification et de traitement ; d'autres mécanismes peuvent être installés par ajout de modules.
Un site web statique, amoureusement programmé en HTML, c'est bien joli mais ça ne va pas très loin. On veut généralement rapidement proposer des éléments dynamiques sur un site web, pour améliorer l'expérience utilisateur ou pour simplifier son administration... Les CGI sont une solution à ce problème.
PHP est un langage développé spécifiquement pour le Web. Il permet de créer des sites dynamiques et propose une syntaxe proche du C, ainsi qu'une collection de bibliothèques simples à utiliser, le rendant accessible à grand nombre de développeurs. Ses différentes propriétés lui ont permis de devenir rapidement le langage le plus utilisé pour développer des sites web dynamiques et des applications web.
Perl est un langage de programmation, associé à l'origine au traitement de fichiers textes. Il propose une syntaxe inspirée de différents langages et outils : le C, les scripts shell, les commandes sed, awk, grep, expr... C'est un langage qui était fait pour remplacer les scripts shell compliqués. Avec l'apparition des CGI, ce langage a commencé à être utilisé pour le Web...
Python est un langage polyvalent de haut niveau, dont la philosophie est de mettre l'emphase sur la lisibilité du code source. Sa syntaxe semble particulière lorsque l'on connaît les autres langages courants : pas d'accolades, pas de point-virgule... Il supporte différents paradigmes de programmation (programmation impérative, fonctionnelle, orientée objet) et propose des fonctionnalités avancées : ramasse-miettes, gestion d'exceptions...
Ruby est un langage interprété et multi-paradigme, très fortement orienté objet, que l'on peut rapprocher de Python pour cela. Mais Ruby est surtout inspiré de Smalltalk (pour le paradigme objet) et d'Eiffel et Ada (pour la syntaxe).
Apache est presque un standard lorsqu'il s'agit de choisir un serveur HTTP, comme l'est sans doute MySQL pour les bases de données, PHP pour le développement d'applications web ou encore GNU/Linux pour les serveurs de manière générale. OpenLDAP s'inscrit également dans cette catégorie des incontournables de l'open source. Le couple Apache + OpenLDAP peut former une émulsion intéressante, comme c'est le cas pour LAMP. Petite introduction au sujet et tour d'horizon des bénéfices.
Nous le voyons tous les jours sur le Web, de très nombreuses informations privées ou sensibles s'échangent avec une cadence infernale entre les navigateurs et les serveurs web. Dans bien des cas, ces données circulent en clair, il devient alors possible pour un attaquant d'écouter très simplement les communications pour découvrir les petits secrets de tout le monde : mots de passe, e-mails, commentaires, coordonnées postales, informations bancaires, contenu de paniers d'achat, etc.
LAMP est l'acronyme de Linux, Apache, MySQL, PHP : c'est l'ensemble de technologies le plus couramment utilisé pour un site web dynamique. Ubuntu, c'est la distribution Linux la plus diffusée aujourd'hui parmi les personnes qui débutent, ou qui aiment les distributions faciles à utiliser. Normalement, avec tous les articles que nous venons de voir, vous êtes capable d'installer votre propre serveur LAMP... Mais vu qu'on est gentils, voici un récapitulatif de l'installation d'un tel serveur.
Comme dans la « vraie vie », lorsque l'on déménage ou réorganise un serveur, il vaut mieux prévenir ses visiteurs. Le code d'erreur HTTP 301 (Moved Permanently) est là pour ça. Voyons comment l'utiliser avec Apache.
Peut-être voudrez-vous pouvoir administrer votre base de données SQL à partir d'une interface web ? Ça peut être bien plus pratique ! L'outil le plus utilisé dans ce cadre, surtout avec un serveur LAMP, c'est phpMyAdmin. Et, encore une fois, un paquet est directement disponible dans Ubuntu.
Parmi les nombreuses attaques qui peuvent exister sur Internet, les DoS (Denial of Service, déni de service) sont les plus courantes. Il s'agit pour l'attaquant d'envoyer tellement de requêtes que le serveur n'est plus capable de toutes les desservir, les « vraies » requêtes étant alors noyées au milieu de dizaines ou centaines de milliers de requêtes diverses. Le module « mod_evasive » permet de limiter ces attaques.
De nombreux frameworks web sont proposés aujourd'hui, basés sur la plupart des langages de programmation. Parmi eux, on retrouve Django, programmé en Python ; son slogan est « le framework web pour les perfectionnistes sous pression ». Ce framework (ou plateforme de développement) web offre de nombreuses fonctionnalités de haut niveau : représentation des données sous forme d'objets, interface d'administration automatiquement créée, système de templates, système de cache, internationalisation... Utilisé par de nombreux sites d'envergure, il a séduit beaucoup de développeurs.
De nos jours, l'outil le plus populaire pour faire des statistiques sur le Web est probablement Google Analytics ; mais cet outil (et tous ceux qui sont basés sur le même principe) présente deux gros inconvénients : les données sont stockées « dans les nuages » – on ne maîtrise pas leur stockage – et si JavaScript est désactivé chez un visiteur, il ne sera pas comptabilisé. AWStats s'appuie sur les logs du serveur web, auxquels aucun visiteur ne peut échapper, pour donner des statistiques détaillées...

Magazines précédents

Python avancé
GNU/Linux-Magazine Hors-série N°65
Python avancé
Apprenez à programmer en Go !
GNU/Linux-Magazine Hors-série N°63
Apprenez à programmer en Go !
Ne quittez plus vos serveurs des yeux !
GNU/Linux-Magazine Hors-série N°62
Ne quittez plus vos serveurs des yeux !
Créez vos applications Android comme un pro !
GNU/Linux-Magazine Hors-série N°61
Créez vos applications Android comme un pro !
20 Recettes pour développer vos applications Android
GNU/Linux-Magazine Hors-série N°60
20 recettes pour développer vos applications Android

Les derniers articles Premiums

Les derniers articles Premium

Bénéficiez de statistiques de fréquentations web légères et respectueuses avec Plausible Analytics

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Pour être visible sur le Web, un site est indispensable, cela va de soi. Mais il est impossible d’en évaluer le succès, ni celui de ses améliorations, sans établir de statistiques de fréquentation : combien de visiteurs ? Combien de pages consultées ? Quel temps passé ? Comment savoir si le nouveau design plaît réellement ? Autant de questions auxquelles Plausible se propose de répondre.

Quarkus : applications Java pour conteneurs

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Initié par Red Hat, il y a quelques années le projet Quarkus a pris son envol et en est désormais à sa troisième version majeure. Il propose un cadre d’exécution pour une application de Java radicalement différente, où son exécution ultra optimisée en fait un parfait candidat pour le déploiement sur des conteneurs tels que ceux de Docker ou Podman. Quarkus va même encore plus loin, en permettant de transformer l’application Java en un exécutable natif ! Voici une rapide introduction, par la pratique, à cet incroyable framework, qui nous offrira l’opportunité d’illustrer également sa facilité de prise en main.

Body