Recherche de site Web

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


Vous n'utilisez pas Ubuntu 16.04 ?Choisissez une autre version ou distribution.

Introduction

Sur Ubuntu, par défaut, le serveur web Apache2 stocke ses documents dans /var/www/html, qui se trouve généralement 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 des documents vers un autre emplacement, comme un système de fichiers monté séparé. Par exemple, si vous hébergez plusieurs sites web depuis la même instance Apache, mettre la racine des documents de chacun sur son propre volume vous permet de vous adapter en fonction des besoins d'un site ou d'un client spécifique.

Dans ce guide, nous vous montrerons comment déplacer la racine des documents Apache vers un nouvel emplacement.

Prérequis

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

  • Un serveur Ubuntu 16.04 avec un utilisateur non-root ayant des privilèges sudo. Vous pouvez en savoir plus sur la façon de configurer un utilisateur avec ces privilèges dans notre guide Mise en route initiale du serveur avec Ubuntu 16.04.

  • Un serveur web Apache2 : Si vous n'en avez pas encore configuré un, la section Apache de l'article détaillé, Comment installer la pile Linux, Apache, MySQL, PHP (LAMP) sur Ubuntu 16.04, peut vous guider.

  • Un nouvel emplacement pour votre racine de document : Le nouvel emplacement de la racine du document est entièrement configurable en fonction de vos besoins. Si vous déplacez votre racine de document vers un autre périphérique de stockage, vous devrez sélectionner un emplacement sous le point de montage du périphérique.

Dans cet exemple, nous utiliserons le répertoire /mnt/volume-nyc1-01. Si vous utilisez le stockage par blocs sur Linux-Console.net, ce guide vous montrera comment monter votre disque avant de continuer avec ce tutoriel.

Étape 1 — Copier les fichiers vers le nouvel emplacement

Sur une nouvelle installation d'Apache, la racine des documents se situe à /var/www/html. Cependant, si vous travaillez avec un serveur existant, vous pouvez avoir une configuration significativement différente, incluant plusieurs racines de documents dans les directives VirtualHost correspondantes.

Vous pouvez rechercher l'emplacement des racines de document supplémentaires en utilisant grep. Nous rechercherons dans le répertoire /etc/apache2/sites-enabled pour limiter notre attention aux sites actifs. L'option -R garantit que grep affichera à la fois le DocumentRoot et le nom du fichier dans sa sortie :

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

Le résultat ressemblera à quelque chose comme la sortie ci-dessous, bien que les noms et le nombre de résultats soient probablement différents sur une installation existante :

sites-enabled/000-default.conf   DocumentRoot /var/www/html

Utilisez les retours de grep pour vous assurer que vous déplacez les fichiers que vous voulez déplacer et que vous mettez à jour leurs fichiers de configuration appropriés.

Maintenant que nous avons confirmé l'emplacement de notre racine de document, nous allons copier les fichiers vers leur nouvel emplacement avec rsync. L'utilisation de l'option -a préserve les permissions et autres propriétés du répertoire, tandis que -v fournit une sortie détaillée afin que vous puissiez suivre la progression.

Remarque : Assurez-vous qu'il n'y a pas de barre oblique finale sur le répertoire, ce qui peut être ajouté si vous utilisez la complétion par tabulation. Lorsqu'il y a une barre oblique finale, rsync déversera le contenu du répertoire dans le point de montage au lieu de le transférer dans un répertoire html contenant :

sudo rsync -av /var/www/html /mnt/volume-nyc1-01

Maintenant nous sommes prêts à mettre à jour la configuration.

Étape 2 — Mise à jour des fichiers de configuration

Apache2 utilise à la fois des fichiers de configuration globaux et spécifiques aux sites. Pour des informations de base sur la hiérarchie des fichiers de configuration, consultez Comment configurer le serveur Web Apache sur un VPS Ubuntu ou Debian.

Si vous travaillez avec une installation existante, vous devriez modifier les fichiers de hôte virtuel que vous avez trouvés précédemment avec la commande grep. Pour notre exemple, nous allons examiner les deux fichiers d'hôte virtuel fournis par défaut avec Apache, 000-default.conf et default-ssl.conf.

Nous allons commencer par éditer le fichier 000-default.conf :

sudo nano /etc/apache2/sites-enabled/000-default.conf

Ensuite, nous allons trouver la ligne qui commence par DocumentRoot et la mettre à jour avec le nouvel emplacement.

Remarque : Vous devriez rechercher d'autres endroits où le chemin d'origine apparaissait et les changer également pour le nouvel emplacement. Avec une installation par défaut, il y a le DocumentRoot et un bloc Directory que vous devrez modifier. Sur une installation existante, vous pouvez également trouver des éléments comme des alias et des réécritures qui nécessitent une mise à jour. Où que vous voyiez le chemin du document root d'origine dans la sortie de grep, vous devrez enquêter.

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
       DocumentRoot /mnt/volume-nyc1-01/html
        <Directory />
                Options FollowSymLinks
                AllowOverride None
       </Directory>
      <Directory /mnt/volume-nyc1-01/html/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Require all granted
        </Directory>

Après avoir enregistré ces modifications, nous nous pencherons sur la configuration SSL. Sur une installation neuve, SSL ne sera pas encore configuré, mais vous voudrez probablement mettre à jour le ssl-default.conf pour éviter certains problèmes de dépannage plus tard si vous ne vous souvenez pas que vous devez effectuer le changement.

sudo  nano /etc/apache2/sites-available/ssl-default.conf
<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin webmaster@localhost
                DocumentRoot /mnt/volume-nyc1-01
 . . .

Remarque : Si SSL n'est pas activé, le fichier ssl-default.conf se trouve uniquement dans /etc/apache2/sites-available. Si vous activez SSL avec a2ensite, un lien symbolique est créé depuis le fichier dans sites-available vers /etc/apache2/sites-enabled. Dans ce cas, le fichier peut être modifié depuis l'un ou l'autre répertoire.

Étape 3 — Redémarrage d'Apache

Une fois que vous avez terminé les modifications de configuration, vous pouvez vérifier que la syntaxe est correcte avec configtest :

sudo apachectl configtest

Vous recevrez des retours de apachectl configtest avec une installation fraîche :

AH00558: 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

Tant que vous obtenez Syntax OK, redémarrez le serveur web. Sinon, localisez et corrigez les problèmes signalés.

Utilisez la commande suivante pour redémarrer Apache :

sudo systemctl reload apache2

Lorsque le serveur a redémarré, visitez vos sites affectés et assurez-vous qu’ils fonctionnent comme prévu. Une fois que vous êtes sûr que tout est en ordre, n’oubliez pas de supprimer la copie originale des données.

Conclusion

Dans ce tutoriel, nous avons expliqué comment changer la racine du document Apache vers un nouvel emplacement. Cela peut vous aider avec l'administration de base d'un serveur web, comme héberger efficacement plusieurs sites sur un seul serveur. Cela vous permet également de profiter de dispositifs de stockage alternatifs tels que le stockage en bloc en réseau, une étape importante pour faire évoluer un site web au fur et à mesure que ses besoins changent.

Si vous gérez un site web occupé ou en croissance, vous pourriez être intéressé à apprendre comment effectuer des tests de charge sur votre serveur web afin d'identifier les goulots d'étranglement de performance avant de les rencontrer en production. Vous pouvez également en savoir plus sur l'amélioration de l'expérience en production dans cette comparaison de cinq façons d'améliorer la configuration de votre serveur d'application web en production.