Configurer un sous-domaine Apache - Angristan
Configurer un sous-domaine Apache

Configurer un sous-domaine Apache

Ce billet a été écrit il y a longtemps. Il peut contenir des informations erronées.

Ç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.

Configurer un sous-domaine Apache

Configurer un sous-domaine Apache

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.
S’abonner
Notification pour
guest

13 Commentaires
Le plus récent
Le plus ancien Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Adrien

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 🙂

me!

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 ! 😉
[…]

++

cocognou

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

dav

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 🙂

Guimax

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 »

skc

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.

Simon

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.