Question

J'ai parle http://toroid.org/ams/git-website -howto comme point de départ pour un serveur Web de production en cours d'exécution sur un VPS géré. Le VPS fonctionne cPanel et WHM, et il finira par héberger plusieurs sites clients, chacun avec ses propres cPanel compte (donc, chacun avec son propre utilisateur Linux et le répertoire de base à partir de laquelle les sites sont servis). Le site de chaque client est un dépôt Git séparé.

À l'heure actuelle, je pousse chaque dépôt via SSH à un repo nu dans le dossier de la maison du client, par exemple /home/username/git/repository.git/. Selon le tutoriel ci-dessus, chaque repo a été configuré pour la caisse vers un autre répertoire par l'intermédiaire d'un crochet de post-réception. Dans ce cas, chaque chèques de pension sur son propre /home/username/public_html (le DocumentRoot par défaut pour les nouveaux comptes de cPanel), où les fichiers sont ensuite servis par Apache. Bien que cela fonctionne, il me demande de mettre en place (dans mon environnement de développement local) mes télécommandes comme ceci:

url = ssh://username@example.com/home/username/git/repository.git/

Il me faut aussi entrer le mot de passe de l'utilisateur à chaque fois que je pousse à lui, ce qui est moins qu'idéal.

Pour tenter de centraliser l'ensemble de mes dépôts dans un dossier, j'ai aussi essayé de pousser à /root/git/repository.git en tant que root, puis vérifier le répertoire approprié à partir de là. Cependant, cela provoque tous les check-out des fichiers à appartenir à root, ce qui empêche Apache de servir le site, avec des erreurs comme

[error] [client xx.xx.xx.xx] SoftException in Application.cpp:357: UID of script "/home/username/public_html/index.php" is smaller than min_uid

(qui est une propriété de fichier / problème d'autorisations, pour autant que je peux dire)

Je peux résoudre problème avec chown et les commandes chgrp dans chaque repo post-réception crochet - cependant, qui soulève aussi le « pas tout à fait raison » drapeau dans ma tête. J'ai aussi considéré gitosis (pour centraliser toutes mes prises en pension à /home/git/), mais je suppose que je courrais dans le même problème de la propriété des fichiers, car les fichiers exportés seraient alors la propriété de l'utilisateur git.

Suis-je juste aborder cette chose toute la mauvaise façon? Je sens que je suis tout à fait manquer une troisième solution plus élégante au problème global. Ou devrais-je simplement en tenir à l'une des méthodes décrites plus haut?

Était-ce utile?

La solution

  

Il me faut aussi entrer le mot de passe de l'utilisateur à chaque fois que je pousse à lui, ce qui est moins qu'idéal

Il ne devrait pas être nécessaire si vous publiez votre clé ssh publique sur le compte destintion de fichier « .ssh/authorized_keys ».

Voir aussi verrouillage vers le bas ssh clés autorisées par exemple.
Mais aussi la référence officielle Pro Git Book "Configuration du serveur" .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top