Lorsque j'ai commencé à programmer pour le Web et que je voulais créer un nouveau projet, on m'a toujours appris à créer un répertoire dans /var/www/
. Cependant, dans de nombreux tutoriels, je lis que les gens ont tendance à créer un répertoire dans /home/username/
.
Je n'aime pas l'idée de le mettre /home/username/
.
Y a-t-il un endroit correct ou sinon quels sont les avantages / inconvénients de le placer dans certaines zones du système de fichiers?
/var/www
et ai habituellement cela sur un autre lecteur (juste préférence).Réponses:
Il n'y a pas de "meilleur" répertoire. Et tandis que les gens pourraient soutenir que cette question est subjective, ou que le placement réel des fichiers n'a pas d'importance - et ils ont raison à propos de ce dernier - il existe des recommandations standardisées sur l'endroit 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 offre les éléments suivants:
/var
- un endroit pour mettre des 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 juste l'endroit "habituel" que vous mettriez parce que les gens ne modifiez pas très souvent les paramètres par défaut./srv
- ce répertoire doit contenir les données qui sont servies par le système. C'est généralement l'endroit que vous souhaitez. La FHS explique:Donc, 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 voudrez peut-être servir avec votre machine./home
contient des fichiers qui ne devraient appartenir qu’à un seul utilisateur. Apache, par exemple, autorise les répertoires utilisateur , vous pouvez donc accéder aux fichiers Web d'un utilisateur viahttp://example.com/~username
, et ils sont servis à partir dupublic_html
répertoire dans la maison 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, c'est là qu'il faut aller. N'oubliez pas de rendre les répertoires accessibles en écriture par l'utilisateur auquel ils appartiennent uniquement.
Essentiellement
/srv/www
et/var/www
sont les répertoires que vous devez créer des sous - répertoires dans pour tout projet web , vous voudrez peut - être l' hôte. Vous pouvez ensuite définir différentes autorisations 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
.la source
http://example.com/~username
ne pointe généralement pas vers/home/username/
, mais vers/home/username/public_html/
./var/www
il est temps de changer!www
ressemble plus à un sous-domaine pour moi.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, cela ira ici.Si vous faites plusieurs domaines, vous pouvez le faire,
/srv/domain1
/srv/domain2
etc., puis sous-dossier à l'intérieur/ftp
/www
/tftp
/logs
/etc.etc.etc
Pour moi, cela sent une structure très solide sur laquelle construire et facilement contrôler
Mais en tant qu'administrateur, vous pouvez faire aussi propre ou salissant que vous le souhaitez.
la source
Ok réponse rapide facile.
Si vos fichiers Web sur le système ne seront accessibles que par UN utilisateur sur le système Linux. Utilisez 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 http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM déclare.
Voici la citation:
Bonus: www? ftp? Organiser par protocole? Hein?
Comme indiqué ici dans http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM
~/http/your-website-directory/
ou (protocole https), alors:~/https/your-website-directory/
~/your-website-directory/
/srv/http/your-website-directory/
ou (protocole https) alors:/srv/https/your-website-directory/
/srv/your-website-directory/
Pourquoi pas www? C'est un héritage de l'époque Apache. www ne spécifie pas quel protocole est utilisé. Debian l'utilise encore aujourd'hui alors que par exemple Arch linux utilise / srv / http.
la source
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
apache2.conf
fichier par défaut contient un bloc commenté:la source