Configurer un sous-domaine Apache
Ça fait déjà plusieurs fois que je voulais ajouter un sous-domaine à mon site, mais je n’ai jamais trouvé d’explication ou de tutoriel simple pour le faire, et pourtant ce n’est pas si compliqué.
Ce tutoriel sert donc à la fois de mémo mais aussi d’aide pour ceux qui souhaitent configurer un sous-domaine sans se prendre la tête.
Pour ce tuto vous devrez avoir :
- Un accès root en SSH à votre serveur ou VPS
- Apache comme serveur web
- Un accès à votre nom de domaine chez votre registrar
- Connaître l’IP de votre serveur
Prenons un exemple : je souhaite que le sous domaine « site.angristan.fr » pointe sur « /var/www/site«
> Configuration du domaine et des DNS
Mon nom de domaine est chez OVH, je vais donc sur l’interface de mon nom de domaine, dans la zone DNS, puis j’ajoute une entrée de type A.
Un CNAME marche aussi mais je préfère A puisque cela fait une requête DNS en moins. Si vous souhaitez faire pointer sur un domaine choisissez CNAME et si vous voulez faire pointer sur une IP choisissez A.
Il se peut que le sous-domaine ne soit pas actif de suite, vous devez attendre la propagation des DNS.
> Configuration d’Apache
Pour que Apache prenne en compte votre sous-domaine, il faut lui rajouter un VirtualHost.
Connectez-vous en SSH et tapez :
sudo nano /etc/apache2/sites-available/site.conf
Et rajoutez ces lignes :
<VirtualHost *:80> ServerAdmin [email protected] ServerName site.angristan.fr DocumentRoot /var/www/site ErrorLog ${APACHE_LOG_DIR}/site-error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/site-access.log combined </VirtualHost>
Ce sont les données de base d’un VirtalHost. Je vous laisse rajouter les lignes supplémentaires (ex: les logs) qui correspondent à votre configuration (vous pouvez vous inspirer de votre site principal).
Ensuite, activez votre site et redémarrez Apache:
sudo a2ensite site sudo service apache2 restart
Pour désactiver le site si besoin :
sudo a2dissite site
Et normalement, votre sous-domaine devrait bien pointer là ou vous l’avez indiqué 🙂
Dernière modification le 6 septembre 2017.
Bonjour, merci pour cet article !
Le sous-domaine ainsi créé met-il du temps avant d’être accessible ? Cela me renvoie une erreur « adresse introuvable ».
Merci d’avance 🙂
Ça dépend de l’hébergeur de votre domaine, ça peut prendre quelques minutes comme quelques heures !
Hello World!
Je suis tombé sur ton site un peu par hasard et je suis en train de lire un peu tt les articles (d’où le necro) : chapeau ! Tu expliques bien, sans fôtes, imagé et une ‘tite pointe d’humour comme on aime bien : que du bon ! 🙂
Par contre je pense avoir relevé une petite erreur dans ta conf:
« le sous domaine « site.angristan.fr » pointe sur « /var/www/lesite« » <–ici c'est que de la typo
[…]
ServerAdmin [email protected]
ServerName site.angristan.fr
DocumentRoot /var/www/site # <— ICI ! 😉
[…]
++
Merci c’est corrigé 🙂
bonjour,
Pourriez-vous apporter une amélioration sur la création de sous-domaine.
exemple:
Mes sous-domaines pointent sur leurs dossiers propres mais je veux que tous ces sous-domaines utilisent le même fichier image du domaine principal.
j’ai tenté alias et htaccess mais en vain.
J’ai presque réussi en modifiant un fichier urlbuilder en pointant via l’url du domaine principal
çà marche mais impossible de faire fonctionner le zoom des images dans le sous-domaine
st-testcocagnou.com
si je mets les images dans le dossier image du sous-domaine le zoom image fonctionne comme le site principal mais impossible de multiplier les dossiers images.
si vous avez une idée, je suis preneur!
Merci d’avance
hello,
j’ai pas l’habitude de laisser des commentaires en général.
Mais la UN grand merci à toi.
Je cherchai depuis longtemps sans trouver et la j’ai enfin compris grâce à toi.
Alors merci 🙂
Super 😀
Salut, merci pour ton tuto mais pour ma part sa n’as pas marcher du premier coup tu a oublié de rajouter ( et ) au début et à la fin.
ServerName dossier.angristan.fr
DocumentRoot « /var/www/angristan.fr/lesite/mondossier »
Oui désolé, mon éditeur de texte a fait sauté la moitié de la conf… Du coup j’ai refais quelques modifs sur l’article 🙂
Bonjour,
Je donne juste la méthode officielle de configuration d’Apache sous Debian (et probablement Ubuntu), qui pourra éviter des surprises à ceux qui tombent sur cet article:
1- Créer un nouveau fichier dans tc/apache2/sites-available/de avec les lignes données (les balises virtualHost), le fichier default correspond au virtualhost par défaut.
2- Activer le nouveau virtualHost avec « a2ensite nomDuFichier ». De même on peut désactiver un virtualHost avec la commande a2dissite. Ces commandes gèrent des liens symboliques de /etc/apache2/sites-enabled/ vers /etc/apache2/sites-available/
3- Redémarrer Apache
Ensuite il peut être utile de créer de nouveaux fichiers de logs correspondant à ces virtualHost, avec les directives CustomLog et ErrorLog. On peut définir plusieurs noms pour l’accès grâce à ServerAlias. Toutes ces directives se placent entre les balises VirtualHost.
Merci beaucoup pour ces précisions !
En effet ton exemple est bien plus complet. J’ai modifié un peu le tuto, dis moi si c’est mieux 🙂
Il est préférable de créer un fichier par virtualhost (exemple : /etc/apache2/sites-available/monsite.com.conf) avec un « # a2ensite monsite.com.conf && service apache2 reload » sous Debian ou bien « ln -s /etc/apache2/sites-available/monsite.com.conf /etc/apache2/sites-enabled/monsite.com.conf && service apache2 reload) sur un autre système.
Merci j’ai modifié l’article 🙂