GNU/Linux >> Tutoriels Linux >  >> Linux

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

Il n'y a pas de "meilleur" répertoire. Et tandis que les gens pourraient dire que cette question est subjective, ou que le placement réel des fichiers n'a pas d'importance - et ils ont raison sur ce dernier point - il existe des recommandations standardisées sur où mettre quoi dans les systèmes de type Unix.

La norme de hiérarchie du système de fichiers définit cela et vous propose ce qui suit :

  • /var – un endroit pour mettre les données qui changent pendant le fonctionnement normal, comme les journaux, etc. /var/www est le répertoire par défaut pour placer le contenu Web pour Apache, mais son utilisation n'est pas du tout normalisée et c'est juste l'endroit "habituel" où vous le placeriez car les gens ne changent pas les paramètres par défaut très souvent.

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

    L'objectif principal de cette spécification est de permettre aux utilisateurs de trouver l'emplacement des fichiers de données pour un service particulier, et de sorte que les services qui nécessitent une seule arborescence pour les données en lecture seule, les données inscriptibles et les scripts (tels que les scripts cgi) puissent être raisonnablement placés. Les données qui n'intéressent qu'un utilisateur spécifique doivent aller dans le répertoire personnel de cet utilisateur. (…)

    Une méthode pour structurer les données sous /srv est par protocole, par ex. ftp , rsync , www ,et cvs

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

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

    Si vous utilisez un serveur partagé entre plusieurs personnes et que vous souhaitez permettre à chacun d'héberger ses propres scripts, c'est ici qu'il faut aller. N'oubliez pas de rendre les répertoires accessibles en écriture uniquement par l'utilisateur auquel ils appartiennent.

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


Eh bien, vous pouvez placer 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 et si vous suivez la norme de hiérarchie du système de fichiers, il irait ici.

Si vous faites plusieurs domaines, vous pouvez faire /srv/domain1 /srv/domain2 etc etc puis sous-dossier à l'intérieur /ftp /www /tftp /logs /etc.etc.etc

Pour moi, c'est une structure très solide sur laquelle s'appuyer et contrôler facilement

Mais en tant qu'administrateur, vous pouvez faire aussi propre ou désordonné que vous le souhaitez.


Ok réponse simple et rapide.

Si vos fichiers Web sur le système ne seront accessibles que par UN utilisateur sur le système Linux. Utiliser le répertoire personnel de l'utilisateur (~/ ).

Si vos fichiers Web sur le système seront accessibles par PLUSIEURS utilisateurs sur le système Linux. Utilisez /srv/ .

C'est exactement ce que déclare http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM.

Voici la citation :

/srv contient des données spécifiques au site qui sont servies par ce système.

L'objectif principal de cette spécification est de permettre aux utilisateurs de trouver l'emplacement des fichiers de données pour un service particulier, et de sorte que les services qui nécessitent une seule arborescence pour les données en lecture seule, les données inscriptibles et les scripts (tels que les scripts cgi) puissent être raisonnablement placés. Les données qui n'intéressent qu'un utilisateur spécifique doivent être placées dans le répertoire personnel de cet utilisateur.

Bonus :www ? FTP ? Organiser par protocole ? Hein ?

Comme indiqué ici dans http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM

  • Si votre site Web n'est accessible que par UN SEUL utilisateur sur le système et UNIQUEMENT via le navigateur (protocole http), alors :~/http/your-website-directory/
  • Si votre site Web n'est accessible que par UN SEUL utilisateur sur le système et NON UNIQUEMENT via le navigateur, mais plusieurs protocoles (par exemple, http AND tcp AND ...) alors :~/your-website-directory/
  • Si votre site Web est accessible par PLUSIEURS utilisateurs sur le système et UNIQUEMENT via le navigateur (protocole http), alors :/srv/http/your-website-directory/
  • Si votre site Web est accessible par PLUSIEURS utilisateurs sur le système et NON UNIQUEMENT via le navigateur, mais plusieurs protocoles (par exemple, http AND ftp AND ...) alors :/srv/your-website-directory/

Hein pourquoi pas www ? C'est un héritage de l'époque d'Apache. www ne précise pas quel protocole est utilisé. Debian l'utilise toujours à ce jour alors que par exemple Arch Linux utilise /srv/http.


Linux
  1. Sauvegarde cloud vs sauvegarde locale :le moyen le plus sûr de stocker des données

  2. Quel est le but de "l'utilisateur système" dans la réplication MySQL

  3. Que fait l'appel système brk() ?

  4. Quelles devraient être les autorisations idéales pour le répertoire personnel sous Linux

  5. Qu'a fait l'appel système tuxcall ?

Qu'est-ce qu'Intel SGX et quels en sont les avantages ?

Comment trouver l'utilisation du processeur, ce qui fait que le système se bloque

Quel est le niveau d'exécution actuel du système Linux ?

Détecter le système d'initialisation à l'aide du shell ?

Chemin absolu ou relatif sous Linux :quelle est la différence ?

Que signifie le suffixe .d sous Linux ?