2012-04-03 7 views
0

Je viens d'avoir mon premier VPS & ont mis en place NGinx, Ruby, Rails & Gitolite.Chmod sur Git Post-Receive

Je peux pousser et tirer très bien. Cependant, une fois que je pousse quand je visite l'URL, j'obtiens une erreur 403 forbidden. Les fichiers sont localement 755 mais il semble que Git ne les stocke pas.

J'ai trouvé un couple de messages en discuter (y compris celui-ci: git deploying project - file permissions - (chmod)) et la réponse semble être d'ajouter un CHMOD 755 au crochet post-receive.

Mon post-receive ressemble actuellement:

#!/bin/sh 

GIT_WORK_TREE=/www/newrails git checkout -f 
chmod 755 -R /www/newrails 

Et je l'ai fait chmod +x post-receive.

Cependant, quand je pousse je reçois l'erreur: remote: chmod: changing permissions of /www/newrails: Operation not permitted

Comment puis-je faire pour le faire fonctionner, que ce soit en faisant le chmod dans le crochet ont les autorisations pour exécuter, ou par d'autres moyens?

Répondre

4

Essayez de faire le chmod fonctionnent sur le contenu du dossier plutôt que le dossier lui-même:

chmod 755 -R /www/newrails/* 

Ce qui se passe probablement est que l'utilisateur le crochet est en cours d'exécution en tant que (généralement l'utilisateur que vous utilisez pour ssh dans l'accès Git) a l'autorisation d'écrire dans le dossier, mais pas l'autorisation de changer de mode pour le dossier lui-même.

+0

Oui c'est tout! Je ne peux pas croire que tout ce qu'il fallait c'était 1 personnage supplémentaire :) Merci beaucoup. (Il ne me laissera pas accepter pour encore 9 minutes, mais je le ferai). –