Sous-domaines sur localhost
Lorsque vous travaillez avec apache localement, la manière courante de l'utiliser est l'url "http://localhost". Lors du développement Web ou d'un type de test, vous devrez peut-être créer des sous-domaines sur l'hôte local, tout comme sur les serveurs en ligne.
Cet article vous montre comment créer des sous-domaines dans Apache sur localhost. C'est facile et ne prend que quelques minutes.
1. Créer des hôtes de sous-domaine
Le fichier hosts sur un système Linux est utilisé pour mapper des adresses IP à des noms d'hôtes spécifiques. Nous pouvons facilement créer plusieurs sous-domaines ici et les faire pointer vers l'adresse IP de l'hôte local.
Modifiez d'abord le fichier /etc/hosts fichier pour ajouter les sous-domaines que vous souhaitez créer.
$ cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 enlightened 127.0.0.1 a.localhost 127.0.0.1 b.localhost 127.0.0.1 c.localhost
Dans l'exemple ci-dessus, j'ai ajouté 3 sous-domaines, à savoir a.localhost b.localhost et c.localhost
Testez maintenant les sous-domaines en leur envoyant un ping pour vous assurer qu'ils sont accessibles
$ ping a.localhost PING a.localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 time=0.029 ms 64 bytes from localhost (127.0.0.1): icmp_req=2 ttl=64 time=0.029 ms 64 bytes from localhost (127.0.0.1): icmp_req=3 ttl=64 time=0.028 ms ^C
Comme nous pouvons le voir ci-dessus, les sous-domaines répondent à nos requêtes ping, seulement après les avoir ajoutés au fichier hosts.
2. Créez vos répertoires racine de documents de sous-domaine
La prochaine chose à faire est de décider où conserver les fichiers de sous-domaine. Il peut s'agir de n'importe quel répertoire de votre choix, mais dans cet exemple, nous utilisons le répertoire /var/www/, qui est utilisé par apache.
/var/www/subdomains/a/
3. Créez maintenant des hôtes virtuels dans le fichier de configuration Apache
La dernière chose à faire est de créer les hôtes virtuels apache nécessaires pour chacun des sous-domaines. Fondamentalement, nous informons Apache du sous-domaine qu'il doit desservir, ainsi que de divers détails tels que la racine du document pour chacun d'eux.
Dans cet exemple, nous modifions le fichier de configuration principal 000-default. Vous pouvez également créer des fichiers de configuration séparés dans le répertoire sites-available, puis les lier symboliquement au répertoire sites-enabled, ou en utilisant la commande a2ensite.
$ sudo nano /etc/apache2/sites-enabled/000-default
Ajoutez une section virtualhost en bas comme ceci
# Sub domain a.localhost <VirtualHost *:80> DocumentRoot /var/www/subdomains/a/ ServerName a.localhost <Directory /var/www/subdomains/a/> Options Indexes FollowSymLinks MultiViews +Includes AllowOverride FileInfo Options Order allow,deny allow from all </Directory> </VirtualHost>
Redémarrez apache maintenant
$ sudo service apache2 restart
4. Testez-le
Ouvrez maintenant les URL des sous-domaines dans le navigateur, http://a.localhost/ ou similaire et voyez si les fichiers d'index sont affichés ou non.
La commande apachectl peut également être utilisée pour vérifier les détails des sous-domaines. Utilisez l'option "-S" et vérifiez la sortie.
$ sudo apachectl -S [sudo] password for enlightened: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server 127.0.1.1 (/etc/apache2/sites-enabled/000-default:1) port 80 namevhost 127.0.1.1 (/etc/apache2/sites-enabled/000-default:1) port 80 namevhost a.localhost (/etc/apache2/sites-enabled/000-default:42) Syntax OK ...
Références
La page suivante du wiki Ubuntu contient plus d'informations sur la configuration des sous-domaines localhost dans apache.
https://help.ubuntu.com/community/LocalhostSubdomain