VirtualHost et nom de domaines sur un VPS NovaHoster

Sur votre serveur virtuel, vous avez installé apache, php, mysql, c’est super mais pas moyen de faire fonctionner plusieurs sites et de faire pointer vos noms de domaine ( et sous domaines ) vers vos différents répertoires dans /var/www/html

Pas de panique, voici la solution.

Ce tuto est destiné à un serveur de prod, un vps hébergé chez NovaHoster, mais vous pouvez très bien le transposer à un autre serveur.

 

1 . Le nom de domaine

Dans votre espace client NovaHoster, sélectionnez le nom de domaine : votredomaine.com … c’est un exemple, j’aime la saucisse mais pas au point de payer un tribut à l’AFNIC pour autant.

Dans l’onglet “Zone DNS” vérifiez que votre domaine votredomaine.com  a été créé avec le type A et le type AAAA qui pointe bien vers les IP de votre VPS. ( type A = IPv4 & le type AAAA IPv6 )

Si vous voulez ajouter un sous domaine, un petit clic sur le bouton “Ajouter une entrée“, choisir dans “champs de pointage” le bouton “A” puis tapez votre sous domaine (test.votredomaine.com ) et l’IPv4 de votre VPS comme “Cible“. Et c’est tout pour la gestion du domaine.

2 . Le stockage

Si je peux me faire mettre un conseil, créez un dossier par domaine. Et de sous dossiers pour chaque domaine et ses sous domaines.

cd /var/www/html
sudo mkdir votredomaine.com 
# Puis un sous dossier pour le site et un autre pour son sous domaine
sudo mkdir www
sudo mkdir test

et attribuer les dossiers à l’utilisateur www-data

sudo chown -R www-data:www-data /var/www/html

 

3 . VirtualHost

Niveau apache, deux règles à respecter pour mieux s’y retrouver.

Premièrement, le nom du virtual host doit être identique au nom de domaine, c’est à dire :

cd /etc/apache2/sites-available/
sudo nano votredomaine.com.conf

Et deuxièmement, les sous domaines cohabitent dans le même fichier de configuration.

Un copié / collé sauvage avec ceci :

 

<VirtualHost *:80>
    ServerName votredomaine.com
    ServerAlias www.votredomaine.com
    ServerAlias *.votredomaine.com
    ServerAdmin webmaster@votredomaine.com
    DocumentRoot "/var/www/html/votredomaine.com"
	
    <Directory /var/www/html/votredomaine.com>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    
    RewriteEngine on
        # Domaine principal, redirection vers dossier /www/
        RewriteCond %{HTTP_HOST} ^votredomaine\.com
        RewriteRule ^(.*) /www/$1 [L]

        # Sous-domaine(s), redirection vers les sous dossiers
        RewriteCond %{HTTP_HOST} ^([^\.]+)\.votredomaine\.com
        RewriteCond /var/www/html/votredomaine.com/%1 -d
        RewriteRule ^(.*) /%1/$1 [L]
</VirtualHost>

Reste à activer avec :

a2ensite votredomaine.com.conf
sudo service apache2 restart

Et ça marche !

Pour ajouter un nouveau sous-domaine, plus besoin de toucher au virtual host, un nouveau dossier dans /var/www/html/votredomaine.com portant le même nom que le sous domaine et le tour est joué.

 

 

Cette réponse était-elle pertinente? 0 Utilisateurs l'ont trouvée utile (0 Votes)