Comprendre un Serveur Web : les composants

Les serveurs Internet sont depuis les origines du Web essentiellement des logiciels libres Open Source, initiés sous Linux/Unix depuis les universités américaines... à commencer par le programme serveur lui-même.

Cet article précise les composants correspondants à Serveur, base de données, ftp, à quoi ça sert ?
- le serveur Web (Apache ou Nginx, voire IIS),
- le langage PHP (versions de 5 à 8),
- le serveur de Base de Données SQL (MySQL ou MariaDB ou...).

Article publié le 5 mai 2012, et actualisé en janvier 2022

 
 
 
 
 
 
 
 
 
 
 
 

Pour "servir" une page Web à la resqête d’un navigateur-client, il est indispensable que le serveur dispose d’un programme résident disponible en permanence : cette application répond à toute demande d’URL Web en renvoyant la page Web correspondante (initiallement un fichier de l’arborescence DocumentRoot de chemin relatif analogue), comme vous pourriez le constater en utilisant une adresse file://C:\Users\User\Documents\toto.html). La construction de cette page répondue par le serveur peut ensuite nécessiter des outils complémentaires...
Ainsi, la disponibilité du langage PHP apporte la capacité d’une réaction programmée de traitement des requêtes à la demande,pour fournir une réponse interactive.
Enfin le serveur de BDD fournitune gestion structurée de données dynamiques mémorisées entre les connexions de pages, et les sessions d’utilisation. [1]

 Les briques principales de WampServer

L’ensemble serveur Wamp intègre divers composants d’origine Linux, originellement programmés en C pour exécution en services [2] Windows, avec les multiples packages correspondants aux versions Visual C++ de Microsoft en modes 32bits voire 64 bits :
-  wampmanager : programme d’interface de gestion active l’icone (verte ou rouge)
- le service wampapache : programme exécutant Apache (le serveur Web [3])
- le service wampmysqld : démon caché qui sert les données en BDD SQL [4].
- php : langage fondamental d’exécution de SPIP : PHP présente des évolutions incompatibles [5]
- les packages VCRedist : groupes de bibliothèques librement redistribuables de MicroSoft, [6]
- check_vcredist.exe : palliatif indispensable d’identification des précédents (à charger en plus)..
- à votre WampServer manqueraient un serveur de mail, et un service FTP (inutile avec le partage Windows).

Des ’apps’ (applications complémentaires libres en source php) sont aussi fournies :
- phpmyadmin : facilite la manipulation directe des données en tables
- adminer : analogue, gère aussi les bases SQlite (accès fichier direct par php)
- phpsysinfo : une application d’exploration système (réservée aux geeks)

Deux langues "source" qui ne sont utilisées que par vous (et votre navigateur - role de client) :
- le HTML : la syntaxe utilisée pour écrire des pages Web lisibles,
- le CSS : la programmation des jolis habillages des textes écrits ci-dessus,
- le langage PHP : source de SPIP (vous n’aurez pas à y toucher avant... longtemps),
- le langage SPIP : syntaxe complémentaire a SPIP : notre but !
Enfin XDebug est une librairie complémentaire, inutile pour les débuts en SPIP [7]

Vous aurez aussi besoin de deux/trois outils extérieurs, à commencer par :
- un navigateur Web [8] : exemple FireFox Developper Edition
à compléter avec les extensions désirées Extensions du Navigateur WEB.
- un éditeur de texte (mieux que le Bloc-Notes) exemple : NotePad++
- à terme un logiciel de transfert FTP (pour échanger des fichiers avec un serveur Web distant).

 Les fichiers et outils à identifier

L’arborescence installée par Wamp est donc assez complexe, surtout qu’elle est pensée pour pouvoir facilement rajouter des versions multiples des principaux composants (PHP et SQL)..
les sous-répertoires des versions des composants sont suffixés de leur numéro de version [9]
- le dossier "Document Root" : c’est la racine de l’espace des dossiers offerts par votre service Web (WampServer y installant quelques fichiers programmes en PHP, vous devez déposer tous vos sites Web dans dans sous-dossiers).
(A noter : il est possible de partager cet espace-dossier entre serveurs).
- le(s) dossier(s) data de vos données en base : n’y touchez pas directement, mais c’est un sous-répertoire propre à chaque moteur de base de données, pour y enregistrer physiquement les tables.

 La notion de port(e)s IP pour les services

Ces divers composants qui s’exécutent sur le serveur doivent dialoguer entre eux, par exemple quand votre navigateur demande une page Web au serveur Apache, qui lui-même effectuera des requêtes SQL au serveur de BDD. Les Sytèmes d’Exploitation (Windows ou Linux) offrent des port(e)s de communication (parfois fermées par le pare-feu) conventionnellement numérotées, à destination de chaque tache serveur tournant sur l’ordinateur.

Les ports de ces services sont ’affectés’ de façon normalisée [10], même si certains programmes propriétaires ont pris leurs aises :
- le port 53 sert à demander aux serveurs de noms (les DNS) l’adresse IP d’un d’une URL symbolique [11]
- le port 80 dit ’http’, est systématiquement appelé par tous les navigateurs Internet spécifiques (ce qui permet l’inter-opérabilité du Net), ainsi que le port 443 pour les versions https [12].
- le port 3306 est normalement consacré pour accéder au programme serveur de base de données (MySQL ou MariaDB) :vous verrez que WampServer peut vous proposer un port alternatif, mais il faudra penser à le préciser lors de l’installation de SPIP...
- les ports 20 et 21 peuvent etre réservés pour les services FTP (mais c’est rare sous Windows).
Vous comprenez alors mieux la la notion d’installation des services pour Apache et MySQL proposés pour le fonctionnement permanent de votre WampServer ; notez que le raccourci activant l’icone colorée de WampServeur démarre ces services si nécessaire (les arrête à la sortie), et indique en permanence leur bon fonctionnement.


Merci de nous signaler les coquilles, imprécisions ou erreurs qui figureraient dans cette page.

[1En effet,sauf usage de coolies,ou appel adesfichiers ou données enregistrées sur le serveur,toute requette URL adressée au serveur Web est un ’one-shot’, c’est-a-dire qu’elle s’exécute dans un nouveau contexte créé sans tenir compte des echanges passés parles utilisateurs...

[2Un service (voir ci-après #ports) est un programme serveur caché -un démon sortant de sa boite sur demande- pour répondre aux demandes du client/vous..

[3Outre apache, célèbre pour avoir initié la licence éponyme, certains hébergements préfèrent Nginx, qui rend un service équivalent, épuré et souvent plus rapide.

[4Choisir l’un des moteurs MySQL ou MariaDB : actuellement assez équivalents et interchangeables ; il est aussi possible d’utiliser PostgreSQL ou SQLite, voire Oracle, mais pas M$SQLserver.

[5Vous voyez encore des traces de PHP3, et SPIP tourne encore en PHP5.6, que les hébergeurs abandonnent pour les divers PHP 7, 7.1 à 7.4+ et 8.x toujours avec des incompatibilités.

[6Indispensables au fonctionnement sous Windows, chaque exécutable peut exiger une version spécifique d’un ensemble de dll, sinon plantages garantis et sans informations claires !

[7uniquement utile pour tracer des erreurs d’exécution des programmes PHP : vous commencerez par demander de l’aide sur IRC !

[8Dédiez un navigateur à vos taches de développement : vous y ajouterez progressivement de nombreuses extensions.., exemple FireFox (qui peut être déclaré à WampServer)

[9SPIP prend aussi cette codification habituelle des numéros de versions en x.y.z, avec les significations suivantes :

  • un X change pour des modifications profondes (ré-ecriture avec d’autres concepts),
  • un Y change pour un ajout de fonctionnalités sans grands changements,
  • le Z est incrémenté pour distinguer chaque modification (correction de bugs) mineure.

[10Evidemment il ne peut/doit y avoir deux serveurs prêts à répondre sur le même port...

[11Si un hôte virtuel (nom symbolique) n’est pas déclaré dans le DNS de votre réseau local (rôle souvent tenu par votre ’box’ ADSL),vos postes et smartphones n’y sauront trouver accès !

[12Mais certains programmes Windows ’mal-élevés’ comme Skype, préemptent peut-être ce port 80 sur votre ordinateur ; Wamp ne pourra fonctionner normalement.


Liens A2A visibles seulement pour les inscrits.
Liens visibles seulement pour les inscrits.

Article publié le 5 mai 2012, et actualisé en janvier 2022 .

Répondre à cet article