Comment déplacer une racine Web Apache vers un nouvel emplacement sur Ubuntu 20.04

De Get Docs
Aller à :navigation, rechercher

Introduction

Sur Ubuntu, le serveur Web Apache sert les documents stockés dans le répertoire var/www/html par défaut. Ce répertoire est appelé racine du document. Lorsqu'un administrateur ou un utilisateur fait une demande au serveur, il répond avec les fichiers appropriés à partir de la racine du document.

Ce répertoire est généralement situé sur le système de fichiers racine avec le reste du système d'exploitation. Parfois, cependant, il est utile de déplacer la racine du document vers un autre emplacement, tel qu'un système de fichiers monté séparé. Par exemple, si vous servez plusieurs sites Web à partir de la même instance Apache, placer la racine du document de chaque site sur son propre volume vous permet d'évoluer en réponse aux besoins d'un site ou d'un client spécifique.

Dans ce guide, vous allez déplacer une racine de document Apache de son emplacement par défaut de var/www/html vers un nouvel emplacement.

Conditions préalables

Pour compléter ce guide, vous aurez besoin de :

  • Un serveur Ubuntu 20.04 et un utilisateur non root avec des privilèges sudo. Vous pouvez en savoir plus sur la configuration d'un utilisateur avec ces privilèges dans notre guide Configuration initiale du serveur avec Ubuntu 20.04.
  • Apache installé sur votre serveur. Apprenez à le configurer en suivant notre guide Comment installer le serveur Web Apache sur Ubuntu 20.04.
  • SSL configuré pour votre domaine. Configurez ceci en suivant notre guide Comment sécuriser Apache avec Let's Encrypt sur Ubuntu 20.04.
  • Un nouvel emplacement pour la racine de votre document. Dans ce didacticiel, /mnt/volume_nyc3_01 est utilisé comme répertoire pour ce nouvel emplacement. Bien que les instructions de ce guide utilisent l'exemple d'un périphérique de stockage de blocs monté, vous pouvez utiliser n'importe quel emplacement de répertoire sur votre système comme nouvelle racine de document pour servir votre contenu Web.

Si vous utilisez un volume de stockage en bloc de DigitalOcean, ce guide vous montrera comment créer et attacher votre volume. Votre nouvel emplacement racine de document est configurable en fonction de vos besoins. Si vous déplacez la racine de votre document vers un autre périphérique de stockage, vous devrez sélectionner un emplacement sous le point de montage du périphérique.


Étape 1 - Copie de fichiers vers le nouvel emplacement

Si vous avez suivi les didacticiels préalables, vous aurez créé une nouvelle racine de document sur /var/www/your_domain. Vous pouvez également avoir des racines de document supplémentaires dans les directives VirtualHost correspondantes. Il est important d'établir l'emplacement de la racine de votre document actuel avant de copier les fichiers pertinents vers leur nouvel emplacement.

Recherchez l'emplacement des racines de votre document à l'aide de la commande grep pour effectuer une recherche dans le répertoire /etc/apache2/sites-enabled. Cela limite l'attention aux sites actifs. Le drapeau -R garantit que grep imprimera à la fois le DocumentRoot et le nom de fichier complet dans la sortie :

grep -R "DocumentRoot" /etc/apache2/sites-enabled

La sortie suivante révèle l'emplacement de votre DocumentRoot actuel :

Output/etc/apache2/sites-enabled/your_domain-le-ssl.conf:  DocumentRoot /var/www/your_domain
/etc/apache2/sites-enabled/your_domain.conf:         DocumentRoot /var/www/your_domain

Si vous avez des configurations préexistantes, vos résultats peuvent différer de ce qui est affiché ici. Dans les deux cas, vous pouvez utiliser la sortie de grep pour vous assurer que vous déplacez les fichiers souhaités et mettez à jour les fichiers de configuration appropriés.

Maintenant que vous avez confirmé l'emplacement de la racine de votre document, copiez les fichiers à leur nouvel emplacement avec rsync :

Remarque : Lorsque vous utilisez la commande rsync, gardez à l'esprit deux choses :

  • Notez qu'il y a ' une barre oblique finale après your_domain. Si vous n'incluez pas la barre oblique finale ici, vous copiez ce répertoire dans la nouvelle racine du document en tant que sous-répertoire. Par exemple, votre nouvelle racine de document aura cette structure : /var/www/mnt/volume_nyc3_01/your_domain. Cela entraînera un problème lors de la tentative de diffusion de votre fichier index.html à partir de votre nouvelle racine de document.
  • Deuxièmement, il n'y a pas de barre oblique à la fin du nouveau répertoire racine du document /mnt/volume_nyc3_01.


sudo rsync -av /var/www/your_domain/ /mnt/volume_nyc3_01

L'indicateur -a préserve les autorisations et les autres propriétés du répertoire, tandis que l'indicateur -v fournit une sortie détaillée afin que vous puissiez suivre la progression de la synchronisation.

Votre sortie doit inclure les éléments suivants :

Outputsending incremental file list
./
index.html

sent 265 bytes  received 38 bytes  606.00 bytes/sec
total size is 134  speedup is 0.44

Avec vos fichiers en place, vous pouvez passer à la modification de votre configuration Apache pour refléter ces changements.

Étape 2 - Mise à jour des fichiers de configuration

Après avoir localisé et copié les fichiers dans la nouvelle racine du document, vous pouvez configurer les fichiers de l'hôte virtuel pour qu'ils pointent vers ce nouvel emplacement.

Commencez par ouvrir /etc/apache2/sites-enabled/your_domain.conf avec votre éditeur préféré. Cet exemple utilise nano :

sudo nano /etc/apache2/sites-enabled/your_domain.conf

Trouvez la ligne qui commence par DocumentRoot et remplacez-la par le nouvel emplacement racine. Dans cet exemple, le nouvel emplacement racine est /mnt/volume_nyc3_01 :

/etc/apache2/sites-enabled/votre_domaine.conf

<VirtualHost *:80>
    ServerAdmin [email protected]_domain
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /mnt/volume_nyc3_01
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.your_domain [OR]
RewriteCond %{SERVER_NAME} =your_domain
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Après cette directive <VirtualHost>, ajoutez ces lignes en surbrillance pour vous assurer que le serveur suivra les liens symboliques dans le répertoire :

/etc/apache2/sites-enabled/votre_domaine.conf

. . .
</VirtualHost>

<Directory /mnt/volume_nyc3_01>
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

Au total, votre fichier /etc/apache2/sites-enabled/your_domain.conf doit inclure toutes les lignes suivantes spécifiques à votre nouvel emplacement DocumentRoot :

/etc/apache2/sites-enabled/votre_domaine.conf

<VirtualHost *:80>
    ServerAdmin [email protected]_domain
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /mnt/volume_nyc3_01
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.your_domain [OR]
RewriteCond %{SERVER_NAME} =your_domain
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<Directory /mnt/volume_nyc3_01>
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

Enregistrez et quittez votre éditeur. Vous pouvez quitter nano en appuyant sur CTRL + X, puis sur Y, puis sur ENTER.

Après avoir effectué ces modifications, vous pouvez porter votre attention sur la configuration SSL. Ouvrez le fichier /etc/apache2/sites-enabled/your_domain-le-ssl.conf :

sudo nano /etc/apache2/sites-enabled/your_domain-le-ssl.conf

Comme le fichier de configuration précédent, modifiez le DocumentRoot pour refléter le nouvel emplacement :

/etc/apache2/sites-enabled/votre_domaine-le-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin [email protected]_domain
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /mnt/volume_nyc3_01
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
. . .
</VirtualHost>
</IfModule>

Enregistrez et fermez ce fichier.

Vous avez maintenant apporté les modifications de configuration nécessaires pour refléter le nouvel emplacement de la racine de votre document.

Étape 3 - Redémarrer Apache

Une fois que vous avez terminé d'apporter les modifications, vous pouvez redémarrer Apache et tester les résultats.

Tout d'abord, assurez-vous que la syntaxe de vos nouvelles configurations est correcte avec configtest :

sudo apachectl configtest

Si votre syntaxe est correcte, votre sortie devrait révéler ce qui suit :

OutputAH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Remarque : Si vous souhaitez supprimer la première ligne de cette sortie, ajoutez une directive ServerName à votre fichier de configuration Apache global dans /etc/apache2/apache2.conf. Le ServerName peut être le domaine ou l'adresse IP de votre serveur.

Ouvrez le fichier avec votre éditeur :

sudo nano /etc/apache2/apache2.conf

Placez la directive ServerName en bas du fichier de configuration avec your_domain ou l'adresse IP de votre serveur :

/etc/apache2/apache2.conf

# This is the main Apache server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See http://httpd.apache.org/docs/2.4/ for detailed information about
# the directives and /usr/share/doc/apache2/README.Debian about Debian specific
# hints.
...

ServerName your_domain

Enregistrez et quittez votre éditeur.

Ceci n'est cependant qu'un message et n'affecte pas la fonctionnalité de votre site. Tant que la sortie contient Syntax OK, vous êtes prêt à continuer.


Utilisez la commande suivante pour redémarrer Apache :

sudo systemctl reload apache2

Une fois le serveur redémarré, visitez vos sites concernés pour vous assurer qu'ils fonctionnent comme prévu. Une fois que vous êtes sûr que tout est en ordre, n'oubliez pas de supprimer les copies originales des données :

sudo rm -Rf /var/www/your_domain

Vous avez maintenant déplacé avec succès la racine de votre document Apache vers un nouvel emplacement.

Conclusion

Dans ce didacticiel, vous avez appris à modifier la racine du document Apache vers un nouvel emplacement. Cela peut vous aider avec l'administration de base du serveur Web, comme l'hébergement efficace de plusieurs sites sur un seul serveur. Il vous permet également de tirer parti de périphériques de stockage alternatifs tels que le stockage en bloc réseau, qui peuvent être utiles pour faire évoluer un site Web à mesure que ses besoins changent.