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)