Emplacement du file Nginx Site

Je tente de déployer un nouveau server Nginx (premier time) sur Ubuntu. Je suis en train de suivre le didacticiel de DigitalOcean, trouvé ici .

Comme le suggère le tutoriel, je place chaque site sur l'hôte dans /var/www/domain.tld . Le problème auquel je me heurte apparaît lorsque j'essaie d'utiliser git: certains des sites sont stockés dans de bonnes repos, mais essayer d'utiliser sudo avec git provoque des erreurs de permissions (à la fin de git). Ce que je search est un moyen sûr de permettre à mon count user d'accéder aux directorys du site sans passer par sudo. Je ne souhaite pas utiliser un directory dans le dossier d'accueil de mon user (par exemple ~/var/www car cela rend le site dépendant de mon user). Où est un lieu raisonnablement standardisé pour stocker les sites accessibles par l'user?

3 Solutions collect form web for “Emplacement du file Nginx Site”

Utilisez sudo pour atsortingbuer la propriété des directorys sur lesquels les files du site seront présents. Par exemple, /var/www/example.com/public_html (en utilisant le schéma de nommage à partir du tutoriel que vous faites reference). Vous voudrez peut-être atsortingbuer la propriété d'autres directorys à l'intérieur de /var/www/example.com, mais si vous avez par exemple un directory /var/www/example.com/logs, ce directory et son directory parent devraient appartenir à root, et ne peut être inscrite par personne.

Le didacticiel que vous faites reference a un model d'permissions assez simplifié, qui ne vous rendra pas loin si un user qui n'a pas access à des tâches comme user www-data ou comme root doit installer des files dans la racine Web. De plus, dans la mesure du possible, vous souhaitez éviter que l'user www-data ne puisse écrire sur des files de code.

Il existe une stratégie simple, assez commune pour les systèmes d'hébergement partagés où il y a un user pour chaque site, qui possède les files, et le count du server Web accède aux files en fonction des "autres" permissions d'user sur le file. Cela signifie que tous les users peuvent voir tous les files Web d'autres users, mais souvent, il existe également une limitation imposée à ce que l'on peut voir à travers le server d'access au file utilisé (p. Ex. Ftpd ou sshp interne de ssh). Cela empêche les users de se regarder les uns les autres, sans être une security forte. Des mesures plus fortes sont possibles, mais pas vraiment par les permissions de file.

L'user de www-data devra pouvoir écrire dans certains directorys (où les files sont téléchargés), mais idéalement, vous souhaitez que l'user puisse interdire au server Web d'écrire sur d'autres directorys. L'user peut contrôler cela via le bit 'écriture' pour les "autres" users. c'est-à-dire chmod o+x ... ou chmod ox ...

Exécutez git en tant qu'user propriétaire du site, uniquement pour les directorys pouvant être écrits par cet user.

Pour un model légèrement plus sophistiqué qui permet de partager des directorys de sites entre plusieurs users (et les sauve de devoir se démarquer de passer à l'user du site), vous voudrez peut-être consulter http://andrew.mcnaughty.com / nœud / 1

Vous pouvez également envisager d'avoir un système où les modifications apscopes à la twig git appropriée sont automatiquement vérifiées sur le site, ce qui signifie que les users doivent uniquement s'inquiéter de l'access git plutôt que de l'access à l'user du site. Recherchez 'push to deploy git' pour en savoir plus sur cela.

/ var / www est bien si vous attendez un seul site sur ce server.

Si vous prévoyez plus d'un site (c'est-à-dire plus d'une strophe "server" dans nginx), je suggérerais / var / www /, ou une autre structure similaire.

Restez hors de / home si possible, pour le contenu du site.

Je ne suis pas sûr de savoir comment cela se rapporte à git cependant; vous devrez être un peu plus explicite en décrivant quel est le problème. Si je risque d'être hasard, il se peut que les permissions soient liées Si c'est le cas, callbackez-vous, si vous possédez le server, il existe maintenant une raison / var / www doit être la propriété de root, c'est juste le défaut initial (habituellement? Peut-être … il pourrait varier). Il pourrait appartenir à un user non root qui est celui que vous utilisez pour déployer du contenu avec git, que ce soit votre propre code user (mais cela n'est pas recommandé car il confond le concept d'users interactifs avec les users de type service), ou peut-être un user "déployer" qui possède un code / contenu déployé.

Bien que ce ne soit certainement pas la seule solution, cela semble avoir fonctionné pour moi:

J'ai d'abord essayé d'append mon user au groupe www-data ( /var/www appartenait à www-data:www-data ), mais je ne voulais pas donner aux permissions d'écriture / d'écriture du groupe de données www pour protéger contre la security problèmes impliquant d'autres users du système en www-data .

À la fin, j'ai fini par configurer mon count administrateur personnel en tant que propriétaire de /var/www (et ses sous-directorys). Je pense que cela est loin de la meilleure solution, alors je suis toujours ouvert à de meilleures idées, mais pour le moment, me faire me permettre d'avoir l'intégralité du directory m'a permis d'exécuter git là-bas tout en n'ouvrant pas ce qui ressemble à une security majeure des trous. Cette solution se sent encore un peu dépendante de l'user, mais elle se sent mieux que de placer les files Web dans quelque chose comme fortement édité et dépendante de l'user comme /home .

  • Comment savez-vous si votre installation d'Apache est sécurisée?
  • Purgez tous les colis avec une string donnée en son nom
  • Exportation d'un groupe de volumes d'un server à d'autres difficultés
  • Quel est le format de la spécification des repositorys 'http' dans /etc/apt/sources.list?
  • Comment changer le dossier par défaut Nginx?
  • chroot: ne peut pas résoudre les noms de domaine
  • Qu'est-il arrivé à libapache2-mod-macro dans Xenial?
  • Création de nouveaux users utilisant PHP non reconnu par Apache 2.4
  • Impossible d'get rsync sur sftp pour fonctionner
  • Comment savoir quels files sont ouverts?
  • Conseils sur la configuration pour exécuter Shiny Server (nécessite Linux) pour les applications Web R lorsque nous avons un server d'entreprise Windows 2008 R2?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.