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

PostgreSQL au centre de votre SI avec PostgREST

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

Dans un système d’information, il devient de plus en plus important d’avoir la possibilité d’échanger des données entre applications. Ce passage au stade de l’interopérabilité est généralement confié à des services web autorisant la mise en œuvre d’un couplage faible entre composants. C’est justement ce que permet de faire PostgREST pour les bases de données PostgreSQL.

La place de l’Intelligence Artificielle dans les entreprises

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

L’intelligence artificielle est en train de redéfinir le paysage professionnel. De l’automatisation des tâches répétitives à la cybersécurité, en passant par l’analyse des données, l’IA s’immisce dans tous les aspects de l’entreprise moderne. Toutefois, cette révolution technologique soulève des questions éthiques et sociétales, notamment sur l’avenir des emplois. Cet article se penche sur l’évolution de l’IA, ses applications variées, et les enjeux qu’elle engendre dans le monde du travail.

Petit guide d’outils open source pour le télétravail

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

Ah le Covid ! Si en cette période de nombreux cas resurgissent, ce n’est rien comparé aux vagues que nous avons connues en 2020 et 2021. Ce fléau a contraint une large partie de la population à faire ce que tout le monde connaît sous le nom de télétravail. Nous avons dû changer nos habitudes et avons dû apprendre à utiliser de nombreux outils collaboratifs, de visioconférence, etc., dont tout le monde n’était pas habitué. Dans cet article, nous passons en revue quelques outils open source utiles pour le travail à la maison. En effet, pour les adeptes du costume en haut et du pyjama en bas, la communauté open source s’est démenée pour proposer des alternatives aux outils propriétaires et payants.

Sécurisez vos applications web : comment Symfony vous protège des menaces courantes

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

Les frameworks tels que Symfony ont bouleversé le développement web en apportant une structure solide et des outils performants. Malgré ces qualités, nous pouvons découvrir d’innombrables vulnérabilités. Cet article met le doigt sur les failles de sécurité les plus fréquentes qui affectent même les environnements les plus robustes. De l’injection de requêtes à distance à l’exécution de scripts malveillants, découvrez comment ces failles peuvent mettre en péril vos applications et, surtout, comment vous en prémunir.

Body