Virtual host sous apache2, créer des sous-domaines sur votre serveur dédié ou VPS

Tout comme un serveur mutualisé, il est possible de gérer plusieurs sites, et donc plusieurs domaines ou sous domaines sur un serveur dédié ou VPS. Si vous n’utilisez pas d’interface graphique, il est possible de créer des hôtes virtuels qui vous permettront de gérer les différents domaines et de leur assigner un dossier propre de votre serveur.

  1. Prérequis à la configuration du virtual host
  2. Créer les sous-domaines
  3. Créer les virtual hosts
  4. Configuration du serveur apache2

Prérequis pour la création de virtual hosts sur un dédié ou VPS

Avant de commencer, vous devez vous assurer d’avoir un maximum de droits sur votre serveur et votre compte d’hébergement. Vous devez être en mesure de créer des domaines et sous domaines dans la gestion DNS de votre hébergeur, mais également d’avoir un accès ssh vous permettant de naviguer dans tous les dossiers du serveur et de pouvoir éditer et créer de nouveaux fichiers.

Création d’un nouveau sous domaine chez l’hébergeur

La première étape n’est pas bien différente de celle utilisée pour un serveur mutualisé. Il vous faut accéder à la gestion des DNS pour y créer un nouveau sous-domaine. Il va falloir ajouter deux nouvelles entrées, soit une nouvelle entrée A, soit une nouvelle entrée CNAME. Les deux auront la même utilité, soit faire pointer le domaine vers l’hébergement.

  • Avec l’entrée A, vous devez entrer le sous-domaine et le faire pointer vers l’adresse ip du serveur
  • Avec l’entrée CNAME, il s’agit de la même chose, mais il s’agira cette fois-ci de pointer vers le nom de domaine principal

Vous devez le faire pour le nom de domaine avec et sans les www, en version textuelle voici à quoi cela devrait ressembler :

Entrée A

[pastacode lang=”markup” manual=”test%20%20%20IN%20A%20%20%20%20%20%20213.186.33.3%0Awww.test%20%20%20%20%20IN%20A%20%20%20%20%20%20213.186.33.3″ message=”” highlight=”” provider=”manual”/]

Entrée CNAME (attention à ne pas oublier le . après le domaine cible)

[pastacode lang=”markup” manual=”test%20%20%20%20%20IN%20CNAME%20%20%20%20%20%20facemweb.com.%0Awww.test%20%20%20%20%20%20IN%20CNAME%20%20%20www.facemweb.com.” message=”” highlight=”” provider=”manual”/]

Création des virtual hosts sur le serveur

Maintenant que nous avons créé les sous domaines chez l’hébergeur, il est temps de passer aux choses sérieuses. Supposons que nous voulons créer le domaine site.fr et son sous-domaine blog.site.fr. Depuis votre accès ssh ou depuis votre FTP, nous allons modifier le fichier /etc/hosts

[pastacode lang=”markup” manual=”sudo%20gedit%20%2Fetc%2Fhosts” message=”” highlight=”” provider=”manual”/]

ou

[pastacode lang=”markup” manual=”sudo%20nano%20%2Fetc%2Fhosts” message=”” highlight=”” provider=”manual”/]

Nous allons ajouter les lignes suivantes :

[pastacode lang=”markup” manual=”127.0.0.1%20site.fr%0A127.0.0.1%20blog.site.fr” message=”” highlight=”” provider=”manual”/]

Par la suite nous allons créer un dossier pour chacun des sites, cela permet de ne pas mélanger les répertoires des sites et de mieux gérer le développement des sites.

[pastacode lang=”markup” manual=”sudo%20mkdir%20%2Fvar%2Fwww%2Fsite%0Asudo%20mkdir%20%2Fvar%2Fwww%2Fblog” message=”” highlight=”” provider=”manual”/]

Nous allons désormais créer des fichiers de configuration apache pour chacun des domaines pour que le serveur apache puisse gérer les domaines et les cibler aux bons répertoires. Ce fichier est basé sur un fichier de configuration normalement déjà présent dans votre répertorie de configuration apache nommé 000-default.conf (/etc/apache2/sitesavailable/000-default.conf).

Vous pouvez créer les nouveaux fichiers de configuration avec le contenu du fichier default avec la commande suivante :

[pastacode lang=”markup” manual=”sudo%20cp%20%2Fetc%2Fapache2%2Fsites-available%2F000-default.conf%20%2Fetc%2Fapache2%2Fsites-available%2Fsite.conf%0A%0Asudo%20cp%20%2Fetc%2Fapache2%2Fsites-available%2F000-default.conf%20%2Fetc%2Fapache2%2Fsites-available%2Fblog.conf” message=”” highlight=”” provider=”manual”/]

Modification des fichiers .conf pour la configuration des virtual hosts

Il va maintenant falloir configurer les fichiers site.conf et blog.conf et les modifier. Pour site.fr, voici à quoi cela ressemble :

[pastacode lang=”markup” manual=”%3CVirtualHost%20*%3A80%3E%0A%09ServerAdmin%20votre-mail%40site.fr%0A%09ServerName%20site.fr%0A%09ServerAlias%20www.site.fr%0A%09%0A%09DocumentRoot%20%2Fvar%2Fwww%2Fsite%0A%09%3CDirectory%20%2F%3E%0A%09%09Options%20FollowSymLinks%0A%09%09AllowOverride%20None%0A%09%3C%2FDirectory%3E%0A%09%3CDirectory%20%2Fvar%2Fwww%2Fsite%3E%0A%09%09Options%20Indexes%20FollowSymLinks%20MultiViews%0A%09%09AllowOverride%20None%0A%09%09Order%20allow%2Cdeny%0A%09%09allow%20from%20all%0A%09%3C%2FDirectory%3E%0A%0A%09ScriptAlias%20%2Fcgi-bin%2F%20%2Fusr%2Flib%2Fcgi-bin%2F%0A%09%3CDirectory%20%22%2Fusr%2Flib%2Fcgi-bin%22%3E%0A%09%09AllowOverride%20None%0A%09%09Options%20%2BExecCGI%20-MultiViews%20%2BSymLinksIfOwnerMatch%0A%09%09Order%20allow%2Cdeny%0A%09%09Allow%20from%20all%0A%09%3C%2FDirectory%3E%0A%0A%09ErrorLog%20%2Fvar%2Flog%2Fapache2%2Ferror.log%0A%0A%09%23%20Possible%20values%20include%3A%20debug%2C%20info%2C%20notice%2C%20warn%2C%20error%2C%20crit%2C%0A%09%23%20alert%2C%20emerg.%0A%09LogLevel%20warn%0A%0A%09CustomLog%20%2Fvar%2Flog%2Fapache2%2Faccess.log%20combined%0A%0A%20%20%20%20Alias%20%2Fdoc%2F%20%22%2Fusr%2Fshare%2Fdoc%2F%22%0A%20%20%20%20%3CDirectory%20%22%2Fusr%2Fshare%2Fdoc%2F%22%3E%0A%20%20%20%20%20%20%20%20Options%20Indexes%20MultiViews%20FollowSymLinks%0A%20%20%20%20%20%20%20%20AllowOverride%20None%0A%20%20%20%20%20%20%20%20Order%20deny%2Callow%0A%20%20%20%20%20%20%20%20Deny%20from%20all%0A%20%20%20%20%20%20%20%20Allow%20from%20127.0.0.0%2F255.0.0.0%20%3A%3A1%2F128%0A%20%20%20%20%3C%2FDirectory%3E%0A%0A%3C%2FVirtualHost%3E” message=”” highlight=”” provider=”manual”/]

Modifiez également le blog.conf avec les configurations qui lui correspondent (nom de domaine, répertoire).

Une fois les deux fichiers de configuration modifiés, nous allons demander au serveur apache de faire le lien entre les différents fichiers et dossiers que nous avons créés.

[pastacode lang=”markup” manual=”sudo%20a2ensite%20site.conf%0Asudo%20a2ensite%20blog.conf” message=”” highlight=”” provider=”manual”/]

Pour que la configuration soit effective, il faut redémarre le serveur apache :

[pastacode lang=”markup” manual=”sudo%20%2Fetc%2Finit.d%2Fapache2%20reload” message=”” highlight=”” provider=”manual”/]

Pour vérifier que tout fonctionne sans avoir à configurer un site en entier, mettez simplement un fichier index.php à la racine de chacun des domaines (donc /var/www/site/index.php et /var/www/blog/index.php) chacun contenant le sempiternel

[pastacode lang=”php” manual=”%3C%3Fphp%0A%09echo%20%3A%20%22hello%20world!%22%3B%0A%3F%3E” message=”” highlight=”” provider=”manual”/]

Si “hello world!” apparaît sur site.fr et blog.site.fr c’est que la manœuvre est réussie !

A propos de l'auteur(e)

Une réponse