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