web-dev-qa-db-fra.com

Quel est le répertoire recommandé pour stocker le contenu du site Web?

Quand j'ai commencé à programmer pour le Web et que je voulais créer un nouveau projet, on m'avait toujours appris à créer un répertoire dans /var/www/. Cependant, dans beaucoup de tutoriels que j'ai lus, les gens ont tendance à créer un répertoire dans /home/username/.

Je n'aime pas l'idée de le mettre dans /home/username/.

Existe-t-il un emplacement correct ou, dans la négative, quels sont les avantages/inconvénients de le placer dans certaines zones du système de fichiers?

18
Pattle

Il n'y a pas de "meilleur" répertoire. Et bien que les gens puissent dire que cette question est subjective ou que l’emplacement réel des fichiers n’a pas d’importance - et qu’ils ont raison à propos de ce dernier - il existe des recommandations standardisées indiquant où placer quoi dans les systèmes de type Unix.

La norme de hiérarchie du système de fichiers définit ceci et vous offre les avantages suivants:

  • /var - un emplacement pour mettre des données qui changent pendant le fonctionnement normal, telles que les journaux, etc. /var/www est le répertoire par défaut pour placer du contenu Web pour Apache, mais son utilisation n'est pas du tout normalisée et constitue l'emplacement "habituel" que vous souhaitez placer. parce que les gens ne changent pas les paramètres par défaut très souvent.

  • /srv - ce répertoire doit contenir des données servies par le système. C'est généralement l'endroit que vous voulez. La FHS explique:

    Le principal objectif de cette spécification est de permettre aux utilisateurs de localiser les fichiers de données pour un service donné et de placer raisonnablement les services nécessitant une seule arborescence pour les données en lecture seule, les données inscriptibles et les scripts (tels que les scripts cgi). Les données qui ne concernent que certains utilisateurs doivent être placées dans le répertoire de base de cet utilisateur. (…)

    Une méthode pour structurer les données sous /srv est par protocole, par exemple. ftpname__, rsyncname__, wwwet cvsname__

    Donc, créez simplement un répertoire /srv/www et utilisez-le. Vous pouvez créer des sous-dossiers pour chaque hôte virtuel que vous souhaitez desservir avec votre ordinateur.

  • /home contient des fichiers qui ne devraient appartenir qu'à un seul utilisateur. Apache, par exemple, autorise serdirs , de sorte que vous pouvez accéder aux fichiers Web d'un utilisateur via http://example.com/~username et qu'ils sont servis à partir du répertoire public_html situé dans le répertoire de l'utilisateur.

    Si vous utilisez un serveur partagé entre plusieurs personnes et que vous souhaitez autoriser tout le monde à héberger ses propres scripts, vous devez vous y rendre. N'oubliez pas de rendre les répertoires accessibles en écriture à l'utilisateur auquel ils appartiennent uniquement.

/srv/www et /var/www sont essentiellement des répertoires dans lesquels vous devez créer des sous-répertoires pour tout projet Web que vous souhaitez héberger. Vous pouvez ensuite définir différentes autorisations sur ces répertoires pour permettre à certains utilisateurs ou groupes d'utilisateurs de leur écrire. Si vous avez des projets pour un utilisateur à la fois, utilisez /home.

33
slhck

Vous pouvez mettre des fichiers n'importe où, tant que les choses peuvent y accéder correctement, mais les systèmes de fichiers encombrés sont un casse-tête si quelqu'un arrive plus tard.

/srv est le plus logique, plus si vous suivez la norme de hiérarchie du système de fichiers, il ira ici.

Si vous utilisez plusieurs domaines, vous pouvez créer /srv/domain1/srv/domain2 etc etc. puis un sous-dossier à l'intérieur du /ftp/www/tftp/logs/etc.etc.etc

Pour moi, cela donne une structure très solide sur laquelle construire et facilement contrôler

Mais en tant qu'administrateur, vous pouvez faire le ménage comme vous voulez.

3
jenny

Le serveur Web Apache a un site Web par défaut sous /var/www/ mais il suggère de placer d'autres sites Web sous /srv/

J'ai remarqué cela sur Ubuntu Server 14.04 LTS. Son fichier par défaut Apache2.conf contient un bloc commenté:

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>
0
Maris B.