Comment déplacer une racine Web Apache vers un nouvel emplacement sur Debian 8

introduction

Sur Debian 8, le serveur Web Apache2 stocke ses documents dans + / var / www / html par défaut. Ce répertoire est situé sur le système de fichiers racine avec le reste du système d’exploitation. Vous souhaiterez peut-être 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, le fait de placer la racine du document de chaque site sur son propre volume vous permet de faire évoluer votre système en fonction des besoins d’un site ou d’un client spécifique.

Dans ce guide, vous allez déplacer la racine du document Apache vers un nouvel emplacement en déplaçant les fichiers et en modifiant les fichiers de configuration d’Apache.

Conditions préalables

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

  • Un serveur Debian 8 avec un utilisateur non root avec les privilèges + sudo +. Pour en savoir plus sur la configuration d’un utilisateur avec ces privilèges, consultez notre guide Initial Initial Server avec Debian 8. .

  • Un serveur Web Apache2: si vous n’en avez pas encore configuré, la section Apache de l’article de fond, https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql -php-lampe-stack-on-debian-8 [Comment installer des piles Linux, Apache, MySQL, PHP (LAMP) sur Debian 8] peut vous guider.

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

Dans ce didacticiel, nous allons utiliser le répertoire + / mnt / volume-nyc1-01 +, qui pointe vers un volume de stockage en mode bloc connecté au serveur. Si vous souhaitez utiliser le stockage de blocs pour conserver vos pages Web, suivez le didacticiel Comment utiliser Block Stockage sur DigitalOcean pour monter votre lecteur avant de continuer.

Étape 1 - Copier des fichiers vers le nouvel emplacement

Sur une nouvelle installation d’Apache, la racine du document se trouve dans + / var / www / html. Si vous travaillez avec un serveur existant, vous pouvez avoir une configuration très différente, incluant plusieurs racines de document dans les directives VirtualHost correspondantes.

Vous pouvez rechercher l’emplacement de racines de document supplémentaires à l’aide de + grep +. Recherchez dans le répertoire + / etc / apache2 / sites-enabled + pour limiter votre attention aux sites actifs à l’aide de la commande suivante:

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

L’indicateur + -R + garantit que + grep + imprimera à la fois DocumentRoot et le nom du fichier dans sa sortie.

Le résultat ressemblera à ce qui suit, bien que le nom et le nombre de résultats soient probablement différents sur une installation existante:

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

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

Maintenant que vous avez confirmé l’emplacement de la racine de votre document, copiez les fichiers dans leur nouvel emplacement avec + rsync +.

Tout d’abord, installez + rsync + avec

sudo apt-get install rsync

Puis exécutez cette commande pour copier les fichiers:

sudo rsync -av /var/www/html

L’utilisation de l’indicateur + -a + préserve les autorisations et les autres propriétés du répertoire, tandis que` + v + `fournit une sortie détaillée pour vous permettre de suivre l'évolution. En savoir plus sur l'utilisation de ` rsync +` dans le tutoriel https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vv [Comment utiliser Rsync pour synchroniser les répertoires locaux et distants sur un SMV].

Les fichiers se trouvent maintenant dans leur nouvel emplacement, mais Apache est toujours à la recherche de l’ancien emplacement, corrigeons-le.

Étape 2 - Mise à jour des fichiers de configuration

Apache2 utilise des fichiers de configuration globaux et spécifiques à un site. Pour en savoir plus sur la hiérarchie des fichiers de configuration, consultez https://www.digitalocean.com/community/tutorials/how-to-configure-the-apache-web-server-on-an-ubuntu-or-debian. -vps # la-hiérarchie-fichier-apache-dans-Ubuntu-and-debian [Comment configurer le serveur Web Apache sur un VPS Ubuntu ou Debian].

Si vous travaillez avec une installation existante, vous devez modifier les fichiers d’hôte virtuel trouvés précédemment à l’aide de la commande + grep +. Pour cet exemple, nous allons examiner les deux fichiers d’hôte virtuel fournis avec Apache par défaut, + 000-default.conf + et + default-ssl.conf +.

Commencez par éditer le fichier + 000-default.conf:

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

Recherchez la ligne commençant par + DocumentRoot + et mettez-la à jour avec le nouvel emplacement:

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

<VirtualHost *:80>
...
       ServerAdmin webmaster@localhost
       DocumentRoot

Ensuite, recherchez un bloc + Directory + qui pointe également vers le chemin d’origine et mettez-le à jour pour qu’il pointe vers le nouveau chemin.

Lors d’une nouvelle installation, il n’y a pas d’entrées + Directory + dans le site par défaut. Ajoutez le code suivant à votre fichier de configuration afin qu’Apache puisse servir des fichiers à partir de votre nouvel emplacement:

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

...
    ServerAdmin webmaster@localhost
    DocumentRoot /mnt/volume-nyc1-01/html










...

Le premier bloc + Directory + définit des autorisations par défaut restrictives, et le second bloc configure les options de la nouvelle racine Web dans + / mnt / volume-nyc1-01 / html / +

Après avoir apporté les modifications nécessaires, enregistrez le fichier.

Nous nous intéresserons ensuite à la configuration SSL. Lors d’une nouvelle installation, SSL n’est pas encore configuré, mais vous voudrez probablement mettre à jour le fichier + ssl-default.conf + pour éviter certains problèmes ultérieurement si vous ne vous rappelez pas que vous devez effectuer la modification.

Editez le fichier:

sudo nano /etc/apache2/sites-available/ssl-default.conf

Effectuez ensuite les mêmes modifications que vous avez effectuées précédemment, en modifiant le + DocumentRoot + et en vous assurant que les règles + Directory + sont correctement configurées:

/etc/apache2/sites-available/ssl-default.conf

...
<IfModule mod_ssl.c>
 <VirtualHost _default_:443>
    ServerAdmin webmaster@localhost
    DocumentRoot










...

Une fois que vous avez terminé les modifications de configuration, assurez-vous que la syntaxe est correcte avec la commande suivante:

sudo apachectl configtest

Vous verrez une sortie comme celle-ci:

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

Sur une installation par défaut, vous verrez le message précédent, que vous pouvez ignorer en toute sécurité. Tant que vous voyez + Syntax OK +, redémarrez le serveur Web. Sinon, localisez et résolvez les problèmes signalés.

Utilisez la commande suivante pour redémarrer Apache:

sudo systemctl reload apache2

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

Conclusion

Dans ce tutoriel, vous avez modifié la racine du document Apache vers un nouvel emplacement. Cela peut vous aider à administrer les serveurs Web de base, comme héberger efficacement plusieurs sites sur un seul serveur. Il vous permet également de tirer parti d’autres périphériques de stockage, tels que le stockage en bloc sur le réseau, étape importante dans la mise à l’échelle d’un site Web en fonction de l’évolution de ses besoins.

Si vous gérez un site Web occupé ou en croissance, vous voudrez peut-être apprendre https://www.digitalocean.com/community/tutorials/how-to-use-apache-jmeter-to-perform-load-testing- sur un serveur Web [comment charger votre serveur Web à l’essai] pour identifier les goulots d’étranglement des performances avant que vous ne les rencontriez en production. Vous pouvez également en savoir plus sur l’amélioration de l’expérience de production en comparant cette méthode. pour améliorer la configuration de votre serveur d’applications Web de production].