A ne pas confondre avec des serveurs Web :
Ces suites intègrent un ensemble d'outils et de serveurs destinés aux développeurs, pour mettre en place facilement des solutions locales (souvent non sécurisées).
Elles sont une alternative à la containerisation (avec Docker, Docker compose…), containerisation qui a l'avantage de la souplesse (changement facile de versions) et de la proximité entre l'environnement de dev et de prod.
Beaucoup sont basées sur Apache, PHP et MySQL (mariaDB) + qq autres serveurs utiles (fichier, messagerie…)
Pour windows, si le dossier Xampp n'est pas à la racine du disque c: c:\xampp,
il est nécessaire d'exécuter en invite de commande :
setup_xampp
Le dossier racine par défaut (root) d'Apache pour la publication de ressources web est {xamppfolder}\htdocs.
La mise en place de virtualhosts permet de spécifier des localisations et noms DNS pour chaque site hébergés :
Pour ajouter le nom dev.local dans le fichier hosts de votre machine :
Ajouter la ligne suivante dans le fichier c:\windows\system32\drivers\etc\hosts
127.0.0.1 dev.local
Tester la résolution DNS :
ping dev.local
Les virtualhosts sont configurés dans {xamppfolder}\apache\conf\extra\httpd-vhost.conf :
Ajouter un vhost pour préserver l'accès normal à la racine de Xampp :
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/"
ServerName 127.0.0.1
</VirtualHost>
Ajouter un vhost par name pour dev.local :
Penser à changer le dossier c:/work/web pour l'adapter à votre configuration.
<VirtualHost *:80>
DocumentRoot "c:/work/web"
ServerName dev.local
ErrorLog "logs/dev.local-error.log"
CustomLog "logs/dev.local-access.log" common
<Directory "c:/work/web">
Require all granted
</Directory>
</VirtualHost>
Créer le fichier index.html à la racine de votre dossier (utilisé comme DirectoryIndex).
<!doctype html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Web local</title>
</head>
<body>
<h1>TDs web</h1>
</body>
</html>
Redémarrer Apache et tester à l'adresse http://dev.local