Virtual Host avec Apache / MAMP
Attention: cet article date du 15 avril 2019
Ce qu'il contient est peut être encore valable...
... ou complètement obsolète!
A des fins d’organisation, il est parfois très intéressant avec un Mamp (ou wamp, xampp…) de créer des adresses virtuelles, une par projet par exemple.
Ce qui permet d’accéder plus rapidement à ce projet, ou de le placer dans un dossier spécifique.
Les virtualhost
sont là pour ça!
Le contexte
Par défaut, l’installation d’un Mamp vous permet d’accéder à vos oeuvres php via l’adresse
http://localhost
Parfois suivi d’un numéro de port, mais je préfère de loin rester dans les standards (voir plus bas).
Et si vous avez un dossier pour un projet (dans mon cas, mes tutos
), vous y accédez via
http://localhost/tutos
Ce qui suppose que ce dossier se trouve dans la même arborescence… Ce qui n’est pas toujours le cas.
Nous allons donc configurer la machine et Mamp pour y accéder via
http://tutos.rc
En virtualisant ce nom de domaine (c’est le terme) pour qu’il pointe vers n’importe quel dossier de la machine, y compris un disque dur externe par exemple…
Notez que j’ai choisi l’extension .rc
de façon arbitraire (en fait, car ce sont mes initiales, si, si). Habituellement, nous utilisons l’extension .dev
mais il semblerait que celle-ci pose problème avec les nouvelles moutures des navigateurs.
ATTENTION: la manipulation est assez technique, soyez vigilants…
Prérequis
- Un Mac (cela marche aussi sur Windows, mais je ne sais plus la méthode exacte, qui doit être cependant très proche)
- Mamp (version 5.3 dans mon cas)
- Atom (éditeur de texte https://atom.io)
- Terminal (pour accéder aux lignes de commande…)
Pour Mamp, j’ai l’habitude donc de le caler sur le port 80, norme standard. Pour ce faire, allez dans le menu MAMP, puis Préférences, puis Ports, et précisez les valeurs ci dessous:
Si vous utilisez autre chose que Mamp (xampp, wamp, …) la méthode sera comparable mais je ne pourrais guère vous l’indiquer…
Créer le « nom de domaine »
Il s’agit ici de faire une correspondance entre le nom de domaine (virtuel, accessible uniquement de votre machine) tutos.rc
et l’adresse IP locale.
Depuis le terminal, lancez l’instruction:
atom /etc/hosts
Ne modifiez rien, rajoutez à la fin
127.0.0.1 tutos.rc ::1 tutos.rc fe80::1%lo0 tutos.rc
Ce qui va nous faire cette fameuse correspondance IP -> nom. A la sauvegarde, votre mot de passe vous sera demandé.
Modifier le fichier vhost d’apache
Nous avons créé le nom virtuel, il faut maintenant préciser à apache de pointer vers un dossier précis, dans mon cas:
/Users/richnou/TUTOS/
Pour ce faire, toujours depuis le terminal, saisissez:
atom /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
Si on exclu les commentaires (ligne avec # au début), votre fichier va ressembler à ceci:
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /Applications/MAMP/htdocs ServerName localhost </VirtualHost> <VirtualHost *:80> DocumentRoot /Users/richnou/TUTOS/ ServerName tutos.rc </VirtualHost>
J’ai mis en gras ce que j’ai ajouté, c’est à dire la correspondance entre le ServerName (tutos.rc donc) et le DocumentRoot (le dossier correspondant).
Modifier le fichier de configuration Apache
Il s’agit maintenant de configurer Apache au niveau global, et donc accepter qu’il prenne en compte nos modifications.
Pour ce faire, toujours depuis le terminal, faire:
atom /Applications/MAMP/conf/apache/httpd.conf
Vers la ligne 206 environ, associé au <Directory />
on modifie le AllowOverride qui était à None pour le mettre à All…
<Directory /> Options Indexes FollowSymLinks AllowOverride All </Directory>
Vers la ligne 575 du même fichier, retirer le # devant:
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
Ce qui permet de demander à Apache d’inclure le fichier vhost que nous avons modifier préalablement.
Ne reste plus qu’à sauvegarder tous les fichiers, et à relancer MAMP… Ne fermez pas Atom! Si jamais cela se passe mal, vous pourrez faire des cmd-Z pour revenir en arrière…
http://tutos.rc
Est désormais accessible.
Un autre hôte virtuel ?
J’ai ici ajouté un seul virtual host, mais il est tout à fait possible d’en créer autant que nécessaire.
Dans ce cas, répétez les phases nom de domaine et vhost, pas utile pour la configuration apache.
Merci.
Les autres que j’ai consultés font modifier les fichiers de /etc/apache2 : inopérant pour moi.
Précisez de relancer les servers MAMP, voire MAMP lui-même.
Cordialement,
Bonjour
le dossier USERS vous le mettez où en fait ? dans votre texte : DocumentRoot /Users/richnou/TUTOS/ que vous avez créer est il dans htdocs du coup ou autre dossier MAMP ??
ou bien dans les dossiers classiques de l’ordi ?
Merci d’avance
Kris
Vous pouvez potentiellement le mettre où vous voulez, mais il est souvent préférable de rester organisé…
Créer des sous dossiers dans le dossier htdocs de mamp peut donc être une bonne option (mais libre à vous)